View Full Version :
DVD2AVI Sourceforge Project
eclipsedvd
17th December 2001, 13:01
Hi everybody,
i think that it could be fine to create a dvd2avi sourceforge project.
There are some non-official release that contains good features.
Today, there is 4 differents release and i think it could be better to create this sf project.
What do you think about ?
DmitryR
17th December 2001, 14:51
Good idea for I think this forum is not a right place to discuss programming problems in.
trbarry
17th December 2001, 15:40
Sounds good to me.
- Tom
Millenod
4th January 2002, 15:14
Hi,
This project is very interesting!
Actually there are too many version of this program :
- 1.76 (official)
- 1.76.11a (i don't have tryed this version)
- 1.76.16 by Precis F Neumann (this version has an enormous bug : it doesn't detect correctly the PAL frame rate (it says 20fps.. and it's in fact 25fps))
- 1.82
- 1.84
- 1.85 by Gloval
Well....
each version has usefull functions...
but we must have only one version, otherwise the project will ended due to incompatibilty problems at the end....
I hope that all dvd2avi programmers (official and unofficial) will merge all their functions in one version, and that they will continue to create great and usefull versions of this program.
I'm waiting news of this project ;-)
(excuse me for my very bad english)
trbarry
5th January 2002, 14:36
I'm waiting news of this project ;-)
I'm waiting too, but I'm not sure that any of those asking for it is willing to actually do the work to set it up and be responsible for it. Including me ;)
- Tom
trbarry
5th January 2002, 14:38
Just out of curiosity, are there other more modest tools for small projects that just allow passing a zip around by email and merging changes?
- Tom
GuiltyX
9th January 2002, 08:01
- 1.76.16 by Precis F Neumann (this version has an enormous bug : it doesn't detect correctly the PAL frame rate (it says 20fps.. and it's in fact 25fps))
1.76.19 is already out...
below, the comment of the author.
except for the function actually used, that have many bugs.
Although i think that d2v output and decode are running correctly, may be.
Slyde
10th January 2002, 18:28
Hi everyone,
Where could those customs releases be downloaded ? I actually haven't been able to find them anywhere.
I've looked quickly at DVD2AVI 1.83pre (from OGO) source, It believe it should be possible to add deinterlacing quite easily, DVD2AVI is well coded.
If a new release of DVD2AVI could provide all theses features :
- automatic 2-pass management
- deinterlacing
- mp3 (lame) + mux (don't know wether 1.84 can mux or not)
DVD2AVI would become a wonderful software, much faster and even easier than FlaskMPEG, especially if someone implements SSE2 IVTC !
I will see what I can myself do for DVD2AVI so if someone wants to create a sf project, don't hesitate, this woud be great !
Nic
10th January 2002, 18:58
Ive already implemented:
2pass
Wizard_FL's Deinterlace (from his IVTC plugin)
(Could add other deinterlacer easily, IVTC is harder to add)
Added the SSE2 code Dmitry wrote
(plus some stuff for myself: i.e. A little simple gui for vstrip, automatic parsing to Lame + Azid exe's, etc)
I use this for all my rips at present...(also added many iDCT algo's but none were better than the present one (on my computer anywayz))
So shout me if I can be any help when things get organised... :)
Cheers,
-Nic
Millenod
10th January 2002, 19:44
Hi,
As we can see, there are lot of developpers who work on dvd2avi.
Each develop interesting features, and want to help the community.
- Well, a project on SourceForge was interesting, but nobody has created it (If I'm wrong please give me the url).
It's the 1st thing you must do : create officially this project.
But you must find a responsible for the web site.
- You must determine all functions, features of this project.
- Why don't create a topic on this forum where people could suggest them
It will be interesting to create project with module files...
so that people can just update this or this module... and why not translation file... (just some suggestions for features).
Lot of people are interested to have finally only one version of this great software.
It's your goal, programmers, you program softwares for you, for your pleasure, and why not share your ideas....
DVD2Avi is more used than FlaskMpeg, and is very well-known.
If I know programming, it will be a real pleasure to help you, but the only thing i can do is sharing my motivation, ideas, suggestions...
Slyde
11th January 2002, 12:16
Originally posted by Nic
Ive already implemented:
2pass
Wizard_FL's Deinterlace (from his IVTC plugin)
(Could add other deinterlacer easily, IVTC is harder to add)
Added the SSE2 code Dmitry wrote
(plus some stuff for myself: i.e. A little simple gui for vstrip, automatic parsing to Lame + Azid exe's, etc)
I use this for all my rips at present...(also added many iDCT algo's but none were better than the present one (on my computer anywayz))
So shout me if I can be any help when things get organised... :)
Cheers,
-Nic
Is your custom release of DVD2AVI available for download anywhere ? Your release isn't far from being perfect for zone 2 DVDs (moreover, very few R2 DVDs are interlaced, in most case they have 4/3 DAR - never seen a 16/9 DAR interlaced DVD).
I've heard on a french forum that doom9 was noticed about the DVD2AVI CVS project, however there's a glitch : DVD2AVI author's permission must be obtained before opening a CVS and he can't be found anywhere...
Thanx to anyone who could give me some URL of any custom build, I'm going to have a look on the deinterlace code. I think we should really make a team as almost anything that should be done is already done but everything should now be put in one, greater release of DVD2AVI.
Slyde
11th January 2002, 20:47
Maybe another name should be found for the next releases ? (would it solve our little problem with the author's autorisation ?)
Millenod
11th January 2002, 22:17
I've tryed to contacts people who've worked with Loli J to obtain his email adress...
I hope they'll give me a reply...
Farok
11th January 2002, 23:02
Originally posted by Nic
Ive already implemented:
2pass
Wizard_FL's Deinterlace (from his IVTC plugin)
(Could add other deinterlacer easily, IVTC is harder to add)
Added the SSE2 code Dmitry wrote
(plus some stuff for myself: i.e. A little simple gui for vstrip, automatic parsing to Lame + Azid exe's, etc)
I use this for all my rips at present...(also added many iDCT algo's but none were better than the present one (on my computer anywayz))
So shout me if I can be any help when things get organised... :)
Cheers,
-Nic
Hi nic,
Where can we download you version of Dvd2Avi ??
thnaks
Nic
11th January 2002, 23:06
Hiya,
I aint really keen on giving it out, there are so many versions out there & mine is such a work in progress....The things ive added were done quickly so people would only flame me for releasing yet another version & not doing things nicely...But I like it (as I can do everything from inside one prog :)
(I promised hld2002 it ages ago...And I still haven't send it....oops)
Cheers,
-Nic
Slyde
11th January 2002, 23:32
Originally posted by Nic
Hiya,
I aint really keen on giving it out, there are so many versions out there & mine is such a work in progress....The things ive added were done quickly so people would only flame me for releasing yet another version & not doing things nicely...But I like it (as I can do everything from inside one prog :)
(I promised hld2002 it ages ago...And I still haven't send it....oops)
Cheers,
-Nic
I would rather get your custom build more for addind some code than using or distributing it.
Julien
16th January 2002, 10:08
Originally posted by Slyde
I've heard on a french forum
lol :D
Me too ! You don't like anymore MV but please give us a link ! Thanks ;)
Change the name ?
It's a good idea. Something like VOB2D2V or VOB2AVI ? :D
7+ Bonne année et bonne santé !
Millenod
16th January 2002, 10:20
Hi Julien ;-)
We could change the name, but are you sure we don't have any problems with Loli J ?
Julien
16th January 2002, 10:38
Originally posted by Millenod
are you sure we don't have any problems with Loli J ?
I don't think he really care about the "copyright"... we wasting too much time ! We must start the project now, it's stupid to wait more and more.
I can take the responsibility if there is any problem, but my english sucks and I am not a programmer... I am not the best person to carry out a project like this but if it's the only way, I can do it :)
Millenod
16th January 2002, 10:57
I have the same problem as you..
We must meet us on a chat one evening to talk about that.
We must find a solution quickly....
Slyde
16th January 2002, 13:56
Julien => I don't have anything against MV but I wanted to do something on my own as well as having some experience in web developing/administration so I created mpeg4-fr.com as well as zonebenchs.com last month. I'm often on HFR board and my own board but I didn't have time to come often on MV board any longer. Moreover MV board is as few visited as my own board and not so interesting compared to HFR board where many good people - developers and skilled people mainly - joined us lately.
For DVD2AVI new name, I think FastMPEG2AVI, fast MPEG convertor or Quick MPEG convertor would be nice , wouldn't it ?
We should also know what creating a CVS on sourceforge exactly implies.
DmitryR
16th January 2002, 15:32
Originally posted by Julien
I can take the responsibility if there is any problem, but my english sucks and I am not a programmer... I am not the best person to carry out a project like this but if it's the only way, I can do it :)
As long as we can understand your English it is quite enough. And you are not to be a programmer. You are to be an administrator. So let start.
eclipsedvd
16th January 2002, 15:43
So let's go !
Julien
16th January 2002, 17:09
Ok, I need some informations :
1. Project Full Name
You should start with specifying the name of your project. The "Full Name" is descriptive, and has no arbitrary restrictions (except a 40 character limit).
2. Project Purpose and Summarization
Please provide detailed, accurate description of your project and what SourceForge resources and in which way you plan to use. This description will be the basis for the approval or rejection of your project's hosting on SourceForge, and later, to ensure that you are using the services in the intended way. This description will not be used as a public description of your project. It must be written in English.
3. License
GNU General Public License (GPL)
GNU Library Public License (LGPL)
BSD License
MIT License
Artistic License
Mozilla Public License 1.0 (MPL)
Q Public License (QPL)
IBM Public License 1.0
MITRE Collaborative Virtual Workspace License (CVW License)
Ricoh Source Code Public License 1.0
Python License
zlib/libpng License
Apache Software License
Vovida Software License 1.0
Sun Internet Standards Source License (SISSL)
Intel Open Source License
Mozilla Public License 1.1 (MPL 1.1)
Jabber Open Source License
Nokia Open Source License
Sleepycat License
Nethack General Public License
IBM Common Public License
Apple Public Source License
Public Domain
Website Only
Other/Proprietary License
4. Project Public Description
This is the description of your project which will be shown on the Project Summary page, in search results, etc. It should not be as comprehensive and formal as Project Purpose description (step 2), so feel free to use concise and catchy wording. Maximum length is 255 chars.
5. Project Unix Name
In addition to full project name, you will need to choose short, "Unix" name for your project.
The "Unix Name" has several restrictions because it is used in so many places around the site. They are:
- Cannot match the unix name of any other project
- Must be between 3 and 15 characters in length
- Must be in lower case
- Can only contain characters, numbers, and dashes
- Must be a valid unix username
- Cannot match one of our reserved domains
- Unix name will never change for this project
Your unix name is important, however, because it will be used for many things, including:
- A web site at unixname.sourceforge.net
- A CVS Repository root of /cvsroot/unixname at cvs.unixname.sourceforge.net
- Shell access to unixname.sourceforge.net
- Search engines throughout the site
That's all !
Slyde
16th January 2002, 17:31
So how will be this project called ?
VOB2AVI ?
FastMPEG2AVI ?
fast MPEG convertor ?
Quick MPEG convertor ?
I can handle the website creation, French translation, and some code.
Nic
16th January 2002, 17:33
Just out of interest, ive added auto crop to the resize window (its not really necessary, but I find it useful, it just scans through the present frame and sets the cropping values appropriately :)
-Nic
Julien
16th January 2002, 17:39
Something with :
Open
Pro
Server
Fast
MPEG
Free
...
Website creation ? Doom9 for English people and Media-Video for French people ;)
I like OpenFrameserver but it's too long... Ofra ?
Julien
16th January 2002, 18:53
1. Project Full Name
Ofra, the ultimate frameserver
2. Project Purpose and Summarization
It's very important and my english is too bad ! Please help me !
3. License
GNU General Public License (GPL)
4. Project Public Description
It's very important and my english is too bad ! Please help me !
5. Project Unix Name
ofra
Are you agree with Ofra or not ? If not, my second choice is FastMPEG2AVI ! As you want...
Please tell me :)
Slyde
16th January 2002, 21:16
Julien, I meant the project's website hosted by SourceForge (if there's one), like http://deinterlace.sourceforge.net/ for DScaler project.
OFRa sounds a bit strange and by the way I think the main objective is not to create the best frameserver tool but primarily the fastest encoder providing bicubic resize (as M2A didn't).
DmitryR
17th January 2002, 00:48
But, if so, I propose MovieBloom. Short name will be MBL.
As to summarization and description I will help you tomorrow.
2NIc: Will you be able to find and incorporate alternative resizer? I digged in the existing one and understood that it will be very hard to professionaly optimize it.
Nic
17th January 2002, 01:01
Hiya Dimtry :)
What alternate resizer do you have in mind, the only two I know (that are any good) are those contained in AviSynth + VDub (& theyre practically the same and already implemented)...
If you know of any others then let me know.... :)
Whats the most common deinterlacer people use anybody know? Im guessing DG's SmartDeinterlacer? Am I write, it looks like Ogo already had an attempt to add it, but I could finish it off...(it will probably be slow as hell to begin with though :)
Cheers,
-Nic
Slyde
17th January 2002, 07:57
MovieBloom isn't bad !
Julien
17th January 2002, 10:41
DVD2AVI OE (Open Edition) (eclipse)
SmartDVD2AVI
My favorite one : SAVE (Smart Audio & Video Encoder)
Smart like SmartRipper, Smart Bitrate Control, SmartDeinterlacer, etc.
Save like Save as AVI, Save as WAV, Save as D2V, etc.
Easy to say and very short ! This word is understand by all people over the world. MovieBloom sound great but I don't know this word (bloom) !!
@Slyde : Ok for your requests (website creation, French translation, and some code) :) You are french so it will be easier for me to work with you ! The only thing I have to do is creating the project and some other stuff.
So, here is the final description (?) :
1. Project Full Name (40 char. max)
MovieBloom, the ulimate encoder.
or
SAVE (Smart Audio & Video Encoder)
2. Project Purpose and Summarization
This project is based on DVD2AVI (by Loli J.). The objective is to make the fastest encoder providing bicubic resize, deinterlace, 2pass, Lame + Azid, etc. Doom9 (http://www.doom9.org) and Media-video (http://www.media-video.com) are the initiator of this great project. MovieBloom or SAVE will be developped in English and French.
3. License
GNU General Public License (GPL)
4. Project Public Description
MovieBloom or SAVE is the fastest and smartest encoder of this world. Based on DVD2AVI, MovieBloom or SAVE inherit of the advantages without the defects. Doom9 (http://www.doom9.org) and Media-video (http://www.media-video.com), the two major site about video compression, are the initiator of this tool. Quality, simplicity and speed are the features of MovieBloom or SAVE.
5. Project Unix Name
moviebloom
or
save
It's not perfect... I need your help to make this description better !! I want to create this project today (if the project is approve then we have to wait 10 days...)
7+ :)
trbarry
17th January 2002, 16:29
What alternate resizer do you have in mind, the only two I know (that are any good) are those contained in AviSynth + VDub (& theyre practically the same and already implemented)...
If you know of any others then let me know....
Whats the most common deinterlacer people use anybody know? Im guessing DG's SmartDeinterlacer? Am I write, it looks like Ogo already had an attempt to add it, but I could finish it off...(it will probably be slow as hell to begin with though
For some reason I tend to lean toward GreedyHMA for deinterlacing/IVTC. ;)
As far as an alternate resizer, I'm just putting the finishing touches on my SimpleResize filter. This is just a simple 2 tap linear interpolation that is good enough for most downsizing if you don't need filtering and care more about speed. It was easier to write it as an Avisynth filter but it was basically taken from the Avisynth/DVD2AVI shared resize code, though it's diverged somewhat in optimizing. It's a bit faster than the others already and so far it's only MMX code, no SSE2.
Also, I've now got a working P4 (test) version of many of DmitryR's SSE2 optimizations if anyone (Nic?) is interested in merging code with some of the other improvements. (5-10% faster on P4) The previous one had a problem in the Add_Block function that would crash P4 users. Or we could wait for a CVS. Thanks to DmitryR and I hope it's okay to announce this.
Finally, does anyone have a version that can directly merge ac3 sound propoerly with DVD2AVI, keeping correct sync? That's my biggest issue right now and I know very little about audio coding. :(
- Tom
DmitryR
17th January 2002, 16:55
Originally posted by Julien
It's not perfect... I need your help to make this description better !! I want to create this project today (if the project is approve then we have to wait 10 days...)
[/B]
I think we can proceed with this ... I am sure that descriptions can be changed in future.
Nic
17th January 2002, 18:03
Hi Tom, have you seen that D Graft has released another IVTC avisynth filter recently ? He posted in the avisynth forum....Have you checked it out? & if so what do you think?
If you could send any code you can, ill whack it into DVD2AVI over the weekend. The SSE2 stuff I cant test but I can add it.
Im off to watch Dave Gilmour + Rick Wright in concert.... :)
Cheers,
-Nic
int 21h
17th January 2002, 19:33
Originally posted by trbarry
For some reason I tend to lean toward GreedyHMA for deinterlacing/IVTC. ;)
As far as an alternate resizer, I'm just putting the finishing touches on my SimpleResize filter. This is just a simple 2 tap linear interpolation that is good enough for most downsizing if you don't need filtering and care more about speed. It was easier to write it as an Avisynth filter but it was basically taken from the Avisynth/DVD2AVI shared resize code, though it's diverged somewhat in optimizing. It's a bit faster than the others already and so far it's only MMX code, no SSE2.
Also, I've now got a working P4 (test) version of many of DmitryR's SSE2 optimizations if anyone (Nic?) is interested in merging code with some of the other improvements. (5-10% faster on P4) The previous one had a problem in the Add_Block function that would crash P4 users. Or we could wait for a CVS. Thanks to DmitryR and I hope it's okay to announce this.
Finally, does anyone have a version that can directly merge ac3 sound propoerly with DVD2AVI, keeping correct sync? That's my biggest issue right now and I know very little about audio coding. :(
- Tom
I'd be interested in having working SSE2 code somewhere so that I can implement it into mpeg2dec.dll.
Julien
17th January 2002, 21:41
Done. Reply in 72 hours :)
trbarry
17th January 2002, 22:01
Hi Tom, have you seen that D Graft has released another IVTC avisynth filter recently ? He posted in the avisynth forum....Have you checked it out? & if so what do you think
I downloaded it but haven't had a chance to try it out yet. But I had some discussions with him about it a couple weeks ago and it seems he had some very good ideas. Hopefully we can get him over here to also put it in DVD2AVI.
For both you and anyone else with a desire to merge TEST code see the current version of Dmitry's stuff (temporarily) at www.trbarry.com/DVD2AVIT2.zip
But be aware that while in seems to run fine (and faster) on my 1.7 P4 Dmitry says it crashes on his and we don't have any idea why yet.
It would be nice if anyone else could reproduce the problem. Especially someone running under the VS6 IDE.
For anyone playing with this, SSE2 support can be easily turned on an off in the gui.cpp member at the point where it is recognized. Scan there for "SSE2".
So far the changes for SSE2 are: the replacement mmxidct.asm member, a changed Add_Block function and a changed function call to idct in the GetPic.c member and code in gui.cpp to recognize SSE2 and add the menu selection. That last also of course added entries to the resource file and resource.h.
Int 21 -
I hope this works on yours and you can merge it easily. I still use Avisynth a lot and would much like the faster one to frame serve.
- Tom (trbarry @ trbarry.com)
Julien
18th January 2002, 00:15
Our project has been approved !
We have to make the team now :)
Please reply if you are interested. I need some developer, tester, doc translator, etc.
Me, Slyde and eclipsedvd will be project admins ;)
ARDA
18th January 2002, 00:36
Is it suppossed to run under amd 1.4? If the answer is yes; I tell you it does not.
When I check ok in dialog File list it disappear saying nothing.Following your thread.
I’ve just turned off most of testes of cpu and just left as follows and worked for me
mov [cpu.mmx], 1
mov [cpu.ssemmx], 0
mov [cpu.ssefpu], 0
mov [cpu.sse2mmx], 0
mov [cpu._3dnow], 0
mov [cpu.ssemmx], 0
I know that’s not the better way to make a test , I am not an experienced asm programmer but it seems to me that you have any problelm with this routine or with its variables.
mov [cpu._3dnow], 1
in that way also works.I hope that can help you and thanks all for the initiative of working in this wonderful tool.
trbarry
18th January 2002, 01:11
Arda -
If you are talking about SSE2 support, no it will not run on Athlon/Amd processors yet. But it should fall back to MMXSSE support or 3dnow support if there is any.
I earlier (last week) tested this on my son's Duron and it worked ok, but of course it did not use SSE2 instructions.
But I'll try that again.
- Tom
trbarry
18th January 2002, 01:13
Our project has been approved !
We have to make the team now
Please reply if you are interested. I need some developer, tester, doc translator, etc.
Me, Slyde and eclipsedvd will be project admins
Neat. I'm interested. What do I do now?
- Tom
trbarry
18th January 2002, 02:22
Arda -
Yes, there may be something wrong with CPU recognition. I got the same symptoms on a P3. It just terminated after I selected a file. I'm trying to reinstall VS6 on a different machine now to debug there.
But anyway, anyone without a P4 should not try to use this. (and I'm not sure about the rest of you either. ;) )
But now I can make it happen I can probably find it.
- Tom
int 21h
18th January 2002, 02:48
The DVD2AVI in the zip file functions fine, and shows SSE2MMX idct as activated on my P4. I am integrating the code changes into Mpeg2dec.dll now.
In case anyone cares, my main motivation for the integration of any code/speed changes in mpeg2dec.dll is for SVCD encoding :)
Please keep me posted on any other SSE2 optimization additions (resize, etc) that can be added into mpeg2dec.dll.
trbarry
18th January 2002, 04:12
Ok. This is fun.
The cpu recognition code in DVD2AVI seems to work right, sorta.
But DVD2AVI seems to helpfully remember which cpu it was running on and may override the cpuid check sometimes in ways I don't understand yet. This info may be coming from the registry or the DVD2AVI.ini file, probably both.
Unfortunately for anyone who downloaded my zip file with the SSE2 code, that zip contains an ini file that remembers it was running on my P4 system. If you don't have a P4 this will not upgrade your system to one. It will just make DVD2AVI think it did. Once you have run it then it appears to remember even if you delete the ini file. Am I crazy, or is this really what is happening?
If you delete the ini file and ever successfully manage to run DVD2AVI once then it will be okay. It will recognize the cpu only if it doesn't think it already remembers. I'm not sure yet if running a different version will also fix it okay after deleting the ini file.
In any event, I will delete that ini file from the zip but you probably shouldn't run my test version above unless you have a P4.
- Tom (confused)
Julien
18th January 2002, 09:38
You need to register on http://sourceforge.net and give me your login (your unix name in fact, mine is : julien_mv) and your function (developer, tester, etc). Then download WinCVS at http://www.wincvs.org/download.html. There are some stuffs I don't understand yet... I have an exam today, I think I try to learn more this week-end ! :D
trbarry
18th January 2002, 18:04
Julien -
I'm already registered on Sourceforge as trbarry and set up to use CVS from there because of my work on the DScaler project. But I can't remember the process I went through. I think if you are the admin then you have to add me as a developer to this project.
BTW, DScaler also makes useful advantage of the Sourceforge mailing list function. Are we going to do this?
- Tom
Nic
18th January 2002, 22:29
& of course im on there as a developer of FAAC as Nickyboy ....but ill be damned if I can remember my password :)
-Nic
Slyde
19th January 2002, 00:44
Ok Nic i've just added you to the project. Hope you can find your pass or else just PM me.
Now which release of DVD2AVI will we take as first release to be modified ? Should we take DVD2AVI 1.84 or one of your custom build ?
trbarry
19th January 2002, 07:51
Can we figure out what begat what?
For instance, I think Nic's version has almost up to date SSE2 changes but mine does not have his enhancements.
Also, does any version use the _aligned_alloc from the M$ SDK? Dimitry has reported there may be an error with the built-in aligned_malloc imbedded inside DVD2AVI. I don't know if the M$ version has the same error.
- Tom
Slyde
19th January 2002, 09:04
So that should be either your version or Nic's one. But obviously that will be more job for the other one to put all his optimisations to the chosen, initial release.
DmitryR => don't hesitate giving me your sourceforge handle if you are interested in the project, we would be pleased having you as developer.
vlad59
19th January 2002, 09:27
I'll be happy to test any version of the new DVD2AVI.
I'm only a java programmer, but I can read easily C or C++ so I can make a little debugging if it's usefull.
I'll register today and send you my nickname as soon as possible.
It's a new beginning for DVD2AVI.
PS : I'm also french ......
Slyde
19th January 2002, 10:31
look like Java is very used in France :D
Nic
19th January 2002, 11:01
Hi,
You go ahead with Tom's version, my version is messy & I want to make it neat. I.e. it uses commandline progs instead of using there DLLs...Thats just me being too busy so doing a rush job on it.
I tried doing some AMD enhancements on it, didn't get very far, made only the slightest fraction of a difference...Tom have you looked into libmpeg2 (@sourceforge)?? They say its everso quick....
Im going to do some stuff to DVD2AVI over this weekend...ill keep u posted...
-Nic
ps
U know it wouldn't be at all hard to turn DVD2AVI into a v. basic DVD player...just a thought.
BlackSun
19th January 2002, 11:08
@Nic: you're going to be crazy !! ;)
Nic
19th January 2002, 11:17
Yeah I know...talk about being busy, do you know else im gonna be doing....changing MPEG4IP windows player so I can decently watch a DivX + AAC MP4 file.
:)
-Nic
eclipsedvd
19th January 2002, 11:19
Tom or Nic, have you look the DVD2AVI PFN ? I think it has integrated the SSE2 optimisations but i am not sure.
The source are also available.
BlackSun
19th January 2002, 11:40
Originally posted by Nic
Yeah I know...talk about being busy, do you know else im gonna be doing....changing MPEG4IP windows player so I can decently watch a DivX + AAC MP4 file.
:)
-Nic
Hmm Interesting, but without DirectShow :D
Nic
19th January 2002, 12:32
DirectShow...can be...arranged :) Or at least thats the plan...but its gonna take some time :)
-Nic
Rumata
19th January 2002, 13:15
I'm doing in avarage 1-2 RIPs in a week. So I'm gonna be a heavy tester :-)
My SourceForge username is rumata76.
Slyde
19th January 2002, 13:28
rumata76 : ok you've just been added as tester.
trbarry : we are ok to start with your release ! Is it ok for you to commit the files on the CVS ?
Julien
19th January 2002, 14:01
I think it could be a good idea to post a news on mpeg4-fr.com, doom9.org, eclipsedvd.fr.st and media-video.com about this project to recruit developers, testers, etc.
trbarry
19th January 2002, 15:14
trbarry : we are ok to start with your release ! Is it ok for you to commit the files on the CVS ?
I would probably be ok as source files only, and without the darn DVD2AVI.ini files. But I don't know enough about CVS to create the initial directory structure to do it myself.
And the aligned_malloc thing is currently still a problem. On a P4 machine certain asm instructions will crash if the data is not 16 byte aligned, though it has not happened on my machine (256 MB).
Because of the need for aligned_malloc I think Avisynth 1.05 now requires developers to download the M$ Win SDK, about 50-60 MB. I guess we should probably document what is going to be needed to compile this think. (VS6 + processor pack + SDK + ?)
If anyone else can add the source from the zip, fine. Or let me know if you want me to try to fumble through it.
- Tom
Slyde
19th January 2002, 16:20
Uploading the sources only will be fine for the moment. Thus we could check if we are able to access the CVS correctly (as I just managed to get this thing working for the moment).
Nic
19th January 2002, 17:26
Yeah, good old aligned_malloc..You may well need the platform SDK...which is huge...
I personally hate the CVS system, (although I understands its need)...far too fiddily...shame there isn't a nice kind of SourceSafe GUI for it...(apparently WinCVS is ok once you get it going)...Anyone want to post easy instructions here..
-Nic
macdaddy
19th January 2002, 19:05
if you all need someone to test on AMDs-I use two of them, and would be happy to test. I use the program all the time, and am happy to test things out. Otherwise, I'll follow development from afar...
good luck to all of you.
prot0vision
19th January 2002, 19:13
Hi All,
I would like to be involved in the new DVD2AVI project (has the new name been finalized?)
I'm probably only qualified to be a tester (AMD 1.4 Thunderbird, W2K). The only thing I was able to add the the original DVD2avi was the 2-pass code for Divx 4.X. If that's not already available in this new version, I can add that.
prot0vision
Julien
19th January 2002, 19:56
The project name is SAVE (Smart Audio & Video Encoder) but it is not the final name... If you like it so it could be the final name, if not you can submit a better name !
Wow... I am on RTC today... it sucks !
Slyde
19th January 2002, 20:06
Julien : I'm always on RTC :/
I think we will go enough tester now, as anyway developpers will mainly test their new code themselves.
Now someone should upload Tom's version on the CVS. Don't worry for the initial structure, uploading the whole folder tree (if any, lol) to the CVS should be fine. Was Dscaler's CVS structure really that complex ?
Farok
20th January 2002, 10:21
Hi everyone...
I would be a beta tester if you need one more. At this moment I'm doing 2-3 rip a week with a modified version of DVD2Avi in Divx4 2pass (with the help of divx2auto :))
In all case i've added for me 3DNow Idct to the Dvd2Avi's Ogo's Version. It's not faster than the MMX on my TB 1.2 but I has been made to see if it would be better.
I can upload the sourcecode if you want to add them to SAVE project (just for fun ;)...
cul8r
Nic
20th January 2002, 10:55
I added almost every iDCT out there to DVD2AVI in the hope that i'd get a speed increase, but DVD2AVI's one really is the fastest......
-Nic
Slyde
20th January 2002, 11:49
I've tested ALL iDCT out here and DVD2AVI SSEMMX is the fastest, even Miha's or the good old MMX iDCT are slower.
Seems no one was still able to add files on the CVS, I would have done it if I had time (and the sources of course), unfortunately I got 35 use case diagramm to make for tomorrow :/
Farok => would you be interested in being developper ? I think we got enough tester but more developpers would be nice. Especially if you've already modified DVD2AVI on your own !
Farok
20th January 2002, 12:56
I don't think that i wouldn't have enought time to contribute in this project as a developer...
My version is here: http://profmegot.free.fr/dvd2avi
uses it if you want.
mean
20th January 2002, 14:57
I could be a nice plus if SAVE would be easily portable from on OS to the other (I.E. do not rely to much on win32 api calls).
Provide it as a OS-independant library, that way other projects could use as an input decoding plug-in easily.
Some people are good at writing GUI and stuff like that.
A nice library would help them and encourage it.
the original DVD2AVI would not be very hard to port, except the asm coded stuff (syntax differs between gnu assembler and microsoft's).
Just my 0.02 Euros
Mean.
Julien
20th January 2002, 16:27
It's an excellent idea mean ! Do you want to contribute to this project by becoming a linux developer ?
mean
20th January 2002, 16:33
If it is portable, i will test it as input plugin for avidemux.
Slyde
21st January 2002, 10:36
Tom if you're too busy please send the sources to one of the admins, we will put them on the CVS. We will bother about its structure later.
trbarry
21st January 2002, 15:55
The files I posted on the 17'th above are still valid. There is one change I am going to make at Dmitry's suggestion to increase the memory pool size to get around the alignment bug temporarily but that is not needed except for P4 users. So see www.trbarry.com/DVD2AVIT2.zip as before. This includes the source.
I mis-spoke when I said I was already set up for CVS. That is not true on my newly built P4 dev machine.
When I tried to install my previous version of CVS windows said it the setup was an invalid module. So I downloaded a new version 1.2 from www.wincvs.org. I also downloaded and installed TCL, whatever that is, but I still get an error from WinCVS that TCL is not present.
Also I need to know what type of authentication I should specify. DScaler was using SSH. Do I need to install that? If so, where is the current one now.
Has anyone gotten all this working on Win/ME and the SAVE project?
- Tom
vlad59
21st January 2002, 18:32
If testers are still needed, my nickname is vlad59.
Ready to help
Slyde
21st January 2002, 18:51
Tom : seems I was able to login (or at least I wasn't threw out) by using one of the two adviced method on sourceforge :
cvs -d:pserver:anonymous@cvs.save-oe.sourceforge.net:/cvsroot/save-oe login
cvs -z3 -d:pserver:anonymous@cvs.save-oe.sourceforge.net:/cvsroot/save-oe co modulename
For SSH method, it seems SSH1 must be installed on the box. I will give a try from linux ASAP. Julien and EclipseDVD should also give a try in order to make the project start.
Julien
21st January 2002, 19:01
@vlad59 and Farok : registration sucessfull :D
@Slyde : ok, I'll give a try
vlad59
21st January 2002, 19:04
I just downloaded dvd2aviT2 (Trbarry's version) wich is base on Dvd2avi 1.83 (by OGO).
There was a lot of new Dvd2avi some weeks ago
So to make everything Clear :
Dvd2avi 1.84 and 1.85 new features (Author Gloval) :
- MP3 compression with lame_enc (-> crash on my C600, don't know why)
Dvd2avi 1.76.16 new features (Author : Precis F. Neumann) :
- ACM support for audio (-> crash on my C600, don't know why)
- maybe something else I have no source and no readme
Dvd2avi 1.76 Commandline 1.04 new features (By DVD2SVCD)
- Commandline options
And Nic additions :
- 2-pass code and many other things
I think there was no more official prog based on Dvd2avi 1.76.
My main pb is v1.76.16 I can't remember where I found it.
trbarry
21st January 2002, 19:07
Okay, I installed SSH (not SSE) from whatever that WinCVS setup utitility thing is.
I think I should be all installed, if the module name is "SAVE" and the root and paths are "save-oe". But anything I try to do gives me a "permission denied" message in that Dos window from SSH.
Are Sourceforge passwords project dependend? Or, like Nic, have I just forgotten mine. I thought I knew it. Can an administrator reset these? Questions, questions, q.....
I'll go do something else for the moment. :(
- Tom
Julien
21st January 2002, 19:10
WinCVS doesn't work :(
WINCVS a causé une défaillance de page dans
le module WINCVS.EXE à 017f:0040e176.
Registres :
EAX=00000000 CS=017f EIP=0040e176 EFLGS=00010246
EBX=00000000 SS=0187 ESP=006ef730 EBP=006ef870
ECX=00000000 DS=0187 ESI=00475278 FS=715f
EDX=8197d7b0 ES=0187 EDI=006ef888 GS=0000
Octets à CS : EIP :
ff 70 20 ff 15 68 20 45 00 c3 8b 0d ac 4f 47 00
État de la pile :
0040d70d 008158c0 16df3dbd 4977ffff 00000000 000c4977 876e0000 00030000 5f401b81 17b710d0 f8700000 0000006e 07100437 006e000c 00000000 87b616bf
Glups
Nic
21st January 2002, 19:33
Yeah, I still cant remember my password (Doh!)... :)
-Nic
Julien
21st January 2002, 19:51
I don't understand how does it work !!
I upload the file on the sourceforge ftp (incoming folder) : ftp://upload.sourceforge.net
Then I make a release (in the Admin panel)
I choose my file save01_src.zip, choose the os, etc. and update
Here is the result : https://sourceforge.net/project/showfiles.php?group_id=44406&release_id=71155
I don't understand...
trbarry
22nd January 2002, 01:07
In CVS terminology I am confused about the difference between a package name, a module name, and a project name. Are they the same or does some admin have to first make a package or module before I can get it or add anything to it?
???
And my password is good. I can login on the Sourceforge web page, just not through CVS & SSH to do anything to SAVE or save-oe
- Tom
ph2t
22nd January 2002, 01:14
Hey guys,
I am really interested in what's going on here. I don't have great C++ skills but I can compile and test not a problem. I also can do documentation as I do that a fair bit in my day job. If you're still taking testers, I'll sign up. My sourceforge nic is PH2T.
Cheers,
ph2t.
int 21h
22nd January 2002, 02:43
I'm very familiar with the DVD2AVI source code and the Mpeg2dec source code. I program in C and C++, but I don't do ASM (very well) I'm interested in implementing any SSE2 improvements in Mpeg2dec and interested in integrating SSRC and Toolame into DVD2AVI (for SVCD usage).
My sourcecode developer name is int21h.
Slyde
22nd January 2002, 10:22
Originally posted by Julien
I don't understand how does it work !!
I upload the file on the sourceforge ftp (incoming folder) : ftp://upload.sourceforge.net
Then I make a release (in the Admin panel)
I choose my file save01_src.zip, choose the os, etc. and update
Here is the result : https://sourceforge.net/project/showfiles.php?group_id=44406&release_id=71155
I don't understand...
You've just made a release :) ... that's not what we want at the moment, just get the CVS working. I will look for my CVS doc @ home.
Slyde
22nd January 2002, 10:50
Try using
http://sfsetup.sourceforge.net/#sfsetup
After installing WinCVS (1.2). This software have problem with win2k and XP, so I don't know whether it will work well for all of you.
Slyde
22nd January 2002, 11:18
sh.... I can't connect from Linux (the network is heavy firewalled) and I can't install WinCVS on NT4 (getting a "Uninstallshield is still in use" error, plus I'm not logged as admin).
Tom => (Hope I won't say wrong things) the package must be save-oe. The project name is on sourceforge the same, save-oe. It was created when the projet was approved bt sourceforge. A module is a subdirectory created in the CVS. Currently there's none, I don't know wether it's your problem because I don't have anything in the admin panel to add a new one.
Are you asked a password when trying to connect with SSH ? I got "unreachable host" error because of the firewall. I only I could have no firewall annoying me, I could for sure add the files.
Else could you get some informations to the DScaler project admin ? (if he's not too busy of course, else we should not disturb him as the documentation should give us the solution). Thanx.
A_Pleite
22nd January 2002, 18:49
I want to test DVD2AVI(T), too (on my Athlon1.4c 256MB)
I could make translations (German), too
I am A_Pleite (registered in this moment)
Suggestions:
- a simple noise filter would be good for noisy dvds (noise is the worst enemy of mpg4)
(
it should work like this:
if the difference between the "old" Pixel (last frame) and the "new" pixel (current frame) is not bigger than "x", the old pixel will be taken again. Y,U and V are compared seperatly (of course). if ONE of them are changing, the new pixel should be taken. 0 <= "x" <= 16. Every Mpeg2-keyfrmae is a noisefilter-keyframe (the hole "new" frame is taken) :confused:
)
-somekind of joblist :eek:
-the ability of encoding the endtitles seperatly (bitrate depending on the main-movie and the vbr-mp3)
A_Pleite
PS:
DVD2AVIT = "dvd to avi it" :cool:
macdaddy
22nd January 2002, 23:36
...interested in integrating SSRC and Toolame into DVD2AVI (for SVCD usage).
I can hardly wait. Again, if there is anything I can do to help, say the word...
Slyde
23rd January 2002, 18:14
Hi,
Still nothing on the CVS :(
Tom, EclipseDVD and Julien, what are the latest news ?
Julien
23rd January 2002, 18:41
Sorry, I have a lot of stuff to do (like my exams ! :D)
The good new is my friend send me this URL today : http://www.cvsgui.org/TortoiseCVS/index.shtml
In fact CVS seems very easy with this !! I think we can use this software for our project.
The bad news is... I have a lot of work with my exams (yes it's true) and I can't manage the project until the next month !
Doom9 must write a news about this, we need more help.
Slyde
23rd January 2002, 19:07
We just need someone give us a CVS login howto and we wil be ready to start seriously, FRS system is very simple as you were able to make a release. I think Tom was not far from log in.
As for me the firewall still prevent me from connect from Linux. I'll be able to try again this weekend at home.
Is EclipseDVD around ? He didn't show for a while...
Julien
23rd January 2002, 19:17
Eclipse have some problems too... his website was delete by free and his forum was close the same day !! It happen yesterday :(
Julien
24th January 2002, 07:01
Can we delete a release ??
We have to decide for a final name too... we have to change all the word "dvd2avi" by "our-project-name" ! Are you agree with "SAVE" or not ?
trbarry
24th January 2002, 20:16
I don't have any strong opinions on the name, or what gets deleted. SAVE or save-oe is fine with me.
But I'd like to be able to start using CVS. I started to take a look at the Sourceforge Setup Doc (https://sourceforge.net/docman/display_doc.php?docid=774&group_id=1) but it seems to require the adminstrator be running Unix and be knowledgable in it, which sadly I am not.
Has anyone successfully used CVS with this yet? We seem to be sort of stuck. There is probably some simple step the admin or user has to do yet.
Can anyone who knows anything about this sort of browse through the save-oe project and see if there is something obvious? Do we even have a source tree?
- Tom
int 21h
24th January 2002, 22:07
If someone can add me as a developer to the sourceforge project I can see what I can do.
I may just start a derivative tree anyways, because honestly I won't have any use of many of the changes in the DVD2AVI interface itself. (i.e. things that don't port over to mpeg2dec.dll)
DSPGuru is helping alot, and soon I should have a DVD2AVI that processes SVCD audio from start to finish when you save your project.
Julien
25th January 2002, 00:03
The memberlist :
https://sourceforge.net/project/memberlist.php?group_id=44406
Tomorrow my friend will explain to me how does it work (for french people please come here (http://www.media-video.com/forum/viewtopic.php?t=949) (friday 20/21h GMT+1) to read his explanation and, please, try to translate it in english to this forum !)
Thanks !
int 21h
25th January 2002, 01:29
You can all praise me later.
I fixxed the goofed up release thing, and hid it. I also commited the save-src.zip into the CVS.
TADA
I can also probably write up a short thing on how to do this for Win2k if anyone needs help.
You can check out the code here: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/save-oe
trbarry
25th January 2002, 02:32
int 21h -
I guess I'll praise you now because we might be busy later. ;)
Thank you. Good work.
This might start things moving along a bit.
Do your audio plans include handling/keeping ac3? That would certainly be nice.
- Tom
int 21h
25th January 2002, 02:43
I was planning on changing the code so that instead of doing the ac3dec thing that it does now, it just called on azid.dll to decode the ac3 frame, in any event, the current ac3 code will stay intact, and my ideas were going to be added as an alternative. I know that Jackei spend a long time perfecting and fine tuning the AC3 code according to spec, and I wouldn't want to disrespect him in that reguard.
int 21h
25th January 2002, 04:24
In other news, DVD2AVI doesn't compile under the Intel compiler.. some type of error in memcopy with prefetch asm commands.
And are we sure to what extent or what reason there are errors in the SSE2 code?
trbarry
25th January 2002, 05:39
The only SSE2 error that I'm aware of is a case, according to DmitryR, where aligned_malloc will not align properly on a 16 byte boundary if it goes into overflow storage. Dmitry suggested just doing a
#define POOL_SIZE 8192 (or larger)
until we find what is likely a memory leak.
And regarding the ac3. Are you saying there is already a way to pass the ac3 audio along with the video to Divx4 and not have to put it in with a 2nd pass? I don't want to decode it, I want to keep all the nice sound of my HDTV captures, and it is a relatively smaller percent of the space on HDTV. But it is a pain putting it back in with Vdub_ac3 later. The delays don't seem to come out right and I am really not very good at doing it manually. Is there a better way?
- Tom
int 21h
25th January 2002, 05:49
No, but adding the code to interleave the AC3 into the avi should be rather trivial, just a small cut/paste and mod from vdub ac3.
trbarry
25th January 2002, 06:10
Yes! Now that would be nifty. And I suspect some folks over on AV Science forum would be grateful too.
- Tom
int 21h
25th January 2002, 06:45
Was reading a bit tonight in one of my favorite books entitled "Intel(r) Pentium(r) 4 and Intel(r) Xeon(tm) Processor Optimization". On page 3-4, there is an interesting section entitled: Checking for Streaming SIMD Extensions 2 Support. That is followed by some abstract explanations and some code listings. The code that is presented is much much easier and less complicated than the current code in use (AMD stuff), and it will plug right in to the existing CPU detection code.
trbarry
25th January 2002, 07:30
I thought checking for SSE2 is just one more bit flag in the word returned from cpuid. I put that into the one already in CVS, along with a menu item for the new IDCT.
The complicated cpu checking code was in the old AMD samples where you didn't even know if the cpuid instruction was supported but I think we now assume at least that much, with maybe apologies to the 80486 users.
But if you have those Intel manuals now, can you figure what the cache line size is. I've seen it both as 64 and 128 in different Intel manuals for the P4.
And BTW, I indeed can check out stuff from CVS now. Haven't put anything back in yet.
- Tom
Julien
25th January 2002, 09:28
Thanks a lot int 21h !! :D
Here is a code optimiser : Quexal (http://www.tommesani.com/) (benchmarks (http://space.virgilio.it/insignis@tin.it/tommesani/MMXPrimer.html#ExamplesBenchmarks))
Is it interesting for us ?
Slyde
25th January 2002, 10:19
Many thanks int21h, serious things can start now ;)
We should list current improvements and TODO list.
Currently I think these features can be quickly added to DVD2AVI :
- Automated 2 pass encoding
- SSE2 support
- Command line parsing
- Audio compression with ACM or Lame
- Deinterlacing
Most of these are already implemented in custom builds of DVD2AVI, so merging them to the release on the CVS should be quickly done.
TODO list :
- Extensive command line support (lot of switch like MPEG2AVI for example to stop using project files) (maybe DVD2SVCD's release improvements would fit)
- Bressenham resize : slightly faster than Bilinear and is for many people as good as Bilinear.
- IVTC
- Noise filter (AVIsynth one should fit)
- Frame-precise Range selection (it's not very precise currently).
- .ifo file parsing to display audio stream langage instead of stream number. Prevent extracting the wrong stream ;)
We should also decide what will SAVE become :
- a more powerfull video/audio encoder ?
- a complete solution like GordianKnot ?
- a tool which doesn't need VirtualDub to produce usable AVIs ?
Julien
25th January 2002, 10:38
Originally posted by Slyde We should also decide what will SAVE become :
- a more powerfull video/audio encoder ?
- a complete solution like GordianKnot ?
- a tool which doesn't need VirtualDub to produce usable AVIs ?
The most optimised frameserver :D
Slyde
25th January 2002, 11:11
It is already more than a frameserver as you won't need VirtualDub anymore with all features I listed implemented. I think it should become for AVI users the fastest standalone AVI encoder as :
- It does resize/cropping.
- It will for sure do audio encoding/AC3 mux.
- It does frame range selection.
- It supports automated 2-pass encoding.
- It would easily reimplace MPEG2AVI with a extented command line support.
With ifo parsing and subtitles support we have a FlaskMPEG clone, except it will be faster, more reliable (even if Xmpeg 4.2a is good), supporting AC3, and able to frameserve much better.
As for SVCD/XVCD users, SAVE frameserve capabilities should make it a must have .
Developpers should give their opinions and what they want SAVE to be.
philippas
25th January 2002, 13:03
Excellent work guys !!! Waiting for a public release :)
@ Slyde
Ifo parsing is sure a neat option but not a must have, because you can easily achieve it by using smartripper with the option stream processing.
Slyde
25th January 2002, 13:37
philippas => I know that but displaying in DVD2AVI the stream langages would be nice.
int 21h
25th January 2002, 13:38
Originally posted by Slyde
It is already more than a frameserver as you won't need VirtualDub anymore with all features I listed implemented. I think it should become for AVI users the fastest standalone AVI encoder as :
- It does resize/cropping.
- It will for sure do audio encoding/AC3 mux.
- It does frame range selection.
- It supports automated 2-pass encoding.
- It would easily reimplace MPEG2AVI with a extented command line support.
With ifo parsing and subtitles support we have a FlaskMPEG clone, except it will be faster, more reliable (even if Xmpeg 4.2a is good), supporting AC3, and able to frameserve much better.
As for SVCD/XVCD users, SAVE frameserve capabilities should make it a must have .
Developpers should give their opinions and what they want SAVE to be.
Whatever we do, we can't change too much in the way of things like dvd2avi project file format. Because obviously we would lose compatibility with Mpeg2dec.dll. As far as frameserving capabilities, I don't know about others, but I myself use Mpeg2dec.dll via Avisynth much more than I use DVD2AVI to do any actual frameserving.
Julien
25th January 2002, 14:02
A little suggestion... is it possible to define the translation in a separate file ? like this :
In English :
_OPEN = Open
_SAVE = Save
_SAVEAS = Save as...
etc.
In French :
_OPEN = Ouvrir
_SAVE = Enregistrer
_SAVEAS = Enregistrer sous...
It would be great ! SAVE could be translate on the fly and it will be easier to translate ! Everybody can translate SAVE without having knowledge in programmation :)
int 21h
25th January 2002, 15:44
I could get more of the project setup within Sourceforge (which I've utilized before) if I had Project Manager status. I don't necessarily want to be Project Manager, but I would like to use the Sourceforge facilities to their fullest extent (Forum usage, Tracking tasks, etc).
:)
Julien
25th January 2002, 15:50
Done. Thanks for your help :)
int 21h
25th January 2002, 16:06
No problem.
Ok, general public type people should do all of the 'feature' requesting here: http://sourceforge.net/forum/?group_id=44406
Developers on the project will also see a developer forum listed there, I suggest we do all further discussions there.
General public type people should also check the Sourceforge page semi-regularly if they are excited about release, because that is the first place it will be listed.
int 21h
25th January 2002, 16:29
Developers will also notice that I have setup some of the tasks in the Tasklist. This will enable us to track the status of modules and current code developments.
Please be aware, for this system to work effectively, we will all need to know how to check in our latest code changes.
The task list is divided into two subprojects, the first is Features, which contains the tasks that all either augment or add a new feature to the original DVD2AVI codebase. (AC3 muxxing, IVTC, etc.) The colors indicate priority, grey is lowest, the reddish color is the highest. The other subproject is to contain code base changes that refer to fixing DVD2AVI code bugs in original AC3 code, Project code, Forced Film, etc.
Feel free to request a certain project exclusively in the Developer forum.
trbarry
25th January 2002, 16:51
Well, there's nobody over there yet so just for the moment I'll add my comments here as they sort of fit in this thread.
My own priorities are a little different because I also use DVD2AVI for HDTV captures. But for now, while I won't necessarily code all of them, I'd really like to see:
* Somebody's 2-pass support
* AC3 passthrough with good sync and no decoding for reasons I stated above. Generally more support for keeping sound in sync somehow.
* More Robustness. DVD2AVI is currently very vulnerable to garbage data. On an analog capture that makes ugly pictures but on a digital capture or DVD rip it crashes it. My WinTvHD card is very good at making garbage data. When we have an obviously bad frame or trapped error we should probably repeat the previous frame as needed to keep things in sync, then continue. I don't know about obviously bad sound.
* My SimpleResize filter (www.trbarry.com/Readme_SimpleResize.txt). I don't know how similar it is to Bresneham (I thought that was a line drawing algorithm but I get the idea) but it is faster and less soft than Bilinear and I already wrote it. And I'll be adding more SSE2 and SSEMMX optimizations.
* IVTC/Deinterlace (anybody's, not necessarily my GreedyHMA)
* A way to get the improvements into mpeg2dec in an enhanced and compatible fashion. We may want to invent a new .d2v file extension and the ability too add a few fields to those files if we otherwise become incompatible. This in turn would mean maybe a new name for a version of mpeg2dec that could read them. But there is so much shared code it would be a shame to not let the frameserved stuff take advantage of the improvements. I also sometimes like to use Avisynth.
* More performance improvements. I wanted to stop at a stable place and get this out to CVS but I still don't have all of Dmitry's code/suggestions in.
* Someday in the future maybe the ability to read ATSC transport streams. Converting is a pain and each additional copy takes 8.5 GB / hour on my drive. But I'll maybe wait until there is more than just me wanting this one.
Thanks again to Julien & int 21h for getting CVS set up.
- Tom
Julien
25th January 2002, 20:02
Here is a little (very little) an crappy explanation on how to use TortoiseCVS (in French) : http://www.media-video.com/forum/viewtopic.php?p=7131#7131
Please correct me when I am wrong (I make a lot of mistakes ! :D )... It can help but be carefull because I really don't understand how does it work !!
Good luck and thanks to int 21h
int 21h
25th January 2002, 22:12
The best documents on using Sourceforge and CVS in particular, that I know of, reside here: https://sourceforge.net/docman/display_doc.php?docid=766&group_id=1
If you follow those directions exactly (except in Win2k, making a seperate batch file for the environment variables, run that batch before doing the exe stuff), it will work perfectly.
Then to checkout a copy of the code, or submit one of your updates:
5. To checkout a copy of the latest source use this command:
cvs -d:ext:username@cvs.projectname.sourceforge.net:/cvsroot/projectname
co projectname
After the initial checkout, you can change into this directory and execute cvs commands without the -d option. For example:
cvs update
cvs commit -m "comments for this commit"
cvs add myfile.c
In any event, once things start moving along, everyone will want to issue the update command often, that will run through and find modified files and update your local copy to be current with the CVS copy. If there are any conflicts, like if I and Tom changed the same line of code, and I commited it before he did, CVS would let him know, and mark the conflict code in his file (when he issued the update command). Then Tom could go through the code, figure out what is current, change it, save it, and commit the new modified file. Then when I updated the next day, everything would be fine. There's tons more info if you've never done this before, its available here: http://cvsbook.red-bean.com/cvsbook.html#Detecting_And_Resolving_Conflicts . If you drop off the anchor on that URL, you can get to the contents of that great book.
Oh and last thing, make sure you're using down and dirty commandline versions of both SSH and CVS. GUIs are nice and all, but believe me when I say, its WAY easier to setup the commandline and update/modify from the commandline then it is from those sometime goofy GUIs.
Good luck.
trbarry
26th January 2002, 01:53
Oh and last thing, make sure you're using down and dirty commandline versions of both SSH and CVS. GUIs are nice and all, but believe me when I say, its WAY easier to setup the commandline and update/modify from the commandline then it is from those sometime goofy GUIs.
Spoken like a true programmer. ;)
But I've had good luck with WinCVS and SSH on DScaler and now on save-oe, now that it's set up. I maybe don't have the power and control of the command line interface but I can check things in and out, etc.
Any of them work but it looks like we know how to do it about 3 ways now that there is really CVS stuff to checkout. So I'll probably stick with WinCVS just so I don't have to learn something new.
- Tom
int 21h
26th January 2002, 06:52
Originally posted by trbarry
But if you have those Intel manuals now, can you figure what the cache line size is. I've seen it both as 64 and 128 in different Intel manuals for the P4.
Intel Pentium 4 and Intel Xeon Processor Optimizations p. 6-3 "Optimizing Cache Usage for Intel Pentium 4 Processors"
The prefetch instruction, inserted by the programmers or compilers, accesses a minimum of one cache line of data (128 bytes on the Pentium 4 processor) prior to that data actually being needed.
:)
Bruce
29th January 2002, 01:07
Well, well ! It's been a while I haven't read the doom9's board (too much work to do and so less time... :/).
Slyde told me about SAVE so I wanted to have a look here. Guys, what you are doing is amazing, I just can say "CONTINUE" ! :D
About the release, Slyde told about a command line, this would be good for "rip-pack" such as mine or others (DVD:reaper for example). But I was also thinking about a .dll version, this would benefit from all the windows threaded architecture and would be very easy to implement in any GUI :) Sorry if you already planed that, I've read the 7 pages quite fast ;)
(and a little word for all the froggy's here, les français ils rulez le DivX :D).
int 21h
29th January 2002, 17:01
Essentially, Mpeg2dec.dll is already a dll of DVD2AVI.
trbarry
29th January 2002, 18:46
@int 21h -
Do you have any idea of how current the mpeg2dec code is in the save-oe project? I got the impression that developement had diverged somewhat.
- Tom
Bruce
29th January 2002, 19:04
Originally posted by int 21h
Essentially, Mpeg2dec.dll is already a dll of DVD2AVI.
You're right... How could I have forgot that ;)
But mpeg2dec.dll doesn't includes all the HUGE features SAVE will (re-size, crop, deinterlace, Inverse Telecine...)
int 21h
29th January 2002, 19:59
@Tom:
As far as I know, the code in mpeg2dec.dll is fairly current and inline with the last official release of DVD2AVI which is 1.76. The only differences that I've seen from glancing over the two ( I didn't do any complicated comparison procedures or anything ) were class changes and some variable changes that allow for it to be encapsulated into the .dll. The only code added into Mpeg2dec.dll that doesn't exist in DVD2AVI are the filters that dividee added.
@Bruce:
I think it would be fairly trivial to integrate alot of the code changes from DVD2AVI into mpeg2dec.dll
int 21h
Originally posted by trbarry
@int 21h -
Do you have any idea of how current the mpeg2dec code is in the save-oe project? I got the impression that developement had diverged somewhat.
- Tom
A_Pleite
7th February 2002, 22:00
You may want to include this tool in save, It could give save the status of somekind of standalone-divx4-nandub.
http://divx4log.narod.ru/
A_Pleite
BlackSun
12th February 2002, 08:17
Hi Int21h, want to apply PowerDivX 4 beta test ? now that I know who you are :)
int 21h
18th February 2002, 15:57
Originally posted by A_Pleite
You may want to include this tool in save, It could give save the status of somekind of standalone-divx4-nandub.
http://divx4log.narod.ru/
A_Pleite
DivX 4 log editing has proven to be unreliable and ineffective at best due to numerous DivX 4 code methods. You can ask around, but I'm fairly certain most serious accurate log editing methods were abandoned because of lack of support by the DXN team.
trbarry
18th February 2002, 16:46
DivX 4 log editing has proven to be unreliable and ineffective at best due to numerous DivX 4 code methods. You can ask around, but I'm fairly certain most serious accurate log editing methods were abandoned because of lack of support by the DXN team.
But I wonder if that would also apply to XviD.
- Tom
int 21h
18th February 2002, 19:42
Originally posted by trbarry
But I wonder if that would also apply to XviD.
- Tom
It doesn't, but since XviD is using the Nandub stats format, you could use Gknot for stat file editing, and borrow Nandub code to implement stat file usage in XviD itself.
Regretably, I am not experiencing as much free time to work on this project as I would like, hopefully I get some more free time before the long stretch of free time this summer. :)
trbarry
19th February 2002, 02:02
I haven't really done anything on this recently either, but I always run hot & cold on stuff like this. Eventually I'll get a big burst of energy and hopefully do something use full.
If you haven't put them in, could I have the other contributed code optimizations that someone sent in?
- Tom
Pko
19th February 2002, 13:36
For the framserve part (the one I use most), I've seen that most people uses it in .avs files... I think that mpeg2dec.dll is mainly a way to include a .d2v in a .avs
I've seen also that many of the improvements already exist in some form as .avs plugins
I've seen also that some people thinks that will be necessary to use a new format since .d2v will not suffice...
Well, why do not include avisynth into save?
It will replace avisynth as .avs handler, with all their functionality (but accepting MPEG files directly), and will include also a new format (.sve?) that will be an hybrid .avs/.d2v in which you can include plugins for avisynth but in a visual way (something a little like virtual dub, but with much more optimized frameserve capabilityes, and you do not need to start vdub, load settings, start frameserve but just to directly open the .sve file as you open a .d2v today)
Just an idea...
Logos
27th February 2002, 20:56
I've quickly read this thread and it seems that some of you have problems to access the CVS repository of SAVE, and I've also seen some questions about CVS itself. I'm not a CVS expert, but let me share my own experience and poor knowledge:
In CVS terms the repository is a folder in the filesystem where some projects/modules are archived. Deciding to use one repository for each project or one repository for many projects is up to the system admin. In the case of SourceForge, there is one repository for each project (from the user's point of view ;)).
Now, WinCVS: just install it with all options (if any, I don't really remember). Note that you DO NOT have to install Tcl: WinCVS will tell you that Tcl isn't installed but you really don't need it.
In WinCVS choose first the location where the "save-oe" folder will be created upon extraction: Use the menu Window/Browse Location/Change... (I've choosed D:\projects for example)
To extract files from CVS, we first have to login to the particular CVS repository: press Ctrl+F1 to bring the preferences Window. Now in the general tab, enter anonymous@cvs.save-oe.sourceforge.net:/cvsroot/save-oe in the CVSROOT field, choose "passwd" file on the cvs server for the authentication method, select cvs 1.10 (standard) for the cvs version to use. In the Globals tab, check use TCP/IP compression and set the compression level to 9. Finally click on the OK button. You've configured your cvs access.
Now you have to login (menu admin/login...): just press enter when you're prompted for a password. Wait a few secs, and if everything goes well, you're logged into the server.
The last step: checking out the module save-oe:
In the Create menu, select Checkout module.... In the dialog box that pops up, enter save-oe for the module name then click OK and the download begins.... That's all
There is a more straight forward way for just anonymous check out, but this one applies also to developers: you've just to replace "anonymous" by your own login in the connection string, and enter the right pwd when prompted.
And YES: we've got a module (folder) called save-oe in a repository called save-oe too. That's not an error :)
Now that I've fetched save-oe's sources (merci les mecs ;)), I'll try to see what I could implement myself. I've thought about some sort of cluster encoding (with multiple machines) ;)
Logos.
stoney
19th March 2002, 03:01
did this project die?
I'm interested in the project's status, too.
bb
trbarry
20th March 2002, 02:10
I'm not sure it ever quite got started. It was probably a very bad idea suggesting above that developer messages be moved to the mini-forum on SourceForge since there never was sufficient interest there to keep it going.
I've been devoting more of my efforts recently to Xvid and some other things and I don't know if anyone is actively working on the save-oe project. I know there is zero activity on Sourceforge.
I think a project like this needs a champion to keep folks interested and organized.
- Tom
macdaddy
20th March 2002, 02:34
I've been devoting more of my efforts recently to Xvid
That's great news.
trbarry
20th March 2002, 06:16
----------------------------------------------------------------------
I've been devoting more of my efforts recently to Xvid
----------------------------------------------------------------------
That's great news.
You mean it's great news for DVD2AVI? ;)
- Tom
neuron2
20th March 2002, 13:23
@trbarry
LMAO
macdaddy
21st March 2002, 02:16
great news for XviD...
you haven't been playing with it as a capture/television-archiving codec have you..?
I thought I remember that time-shifting was something that was being tossed around as an add-on for dscaler...
trbarry
21st March 2002, 04:30
macdaddy -
My original interest in XviD was for HDTV caps. But that got me interested in tuning it because it's hard to play HDTV in software.
There are a few people playing with putting capture & time shifting in DScaler but I'm not one of them and I think it is still very experimental.
For me the cross-over between XviD and DScaler, if any, is more likely to be:
1) Maybe putting Greedy/HM deinterlace into XviD
2) Maybe making a DScaler XviD playback filter. I'd only do this if I thought it could be a lot faster than Dshow. (HDTV again)
And I see I'm way off topic here. Sorry.
- Tom
DDogg
25th March 2002, 03:21
Can't we at least have resizing in dvd2avi? I have always wondered if speed and quality would be better if cropping, resizing, and some noise reduction were done at the pre-frameserve level. We have cropping now. Is it a terribly difficult job to add resizing and maybe some noise reduction?
Wouldn't this be a worthy project? Or, am I completely confused?
trbarry
25th March 2002, 03:45
Can't we at least have resizing in dvd2avi? I have always wondered if speed and quality would be better if cropping, resizing, and some noise reduction were done at the pre-frameserve level. We have cropping now.
DDogg -
I thought both DVD2AVI and mpeg2dec.dll already had resizing and cropping in them. I spent the weekend getting P4 versions of both programs working a bit better. I also did a really low class fix to stop things from bombing out on garbage input. I just doubled the buffer size so motion comp doesn't fall off the end as much. And I added a better (I think) aligned_malloc funtion, both for performance and so P4's don't crash.
But it looks to me like cropping is broken, at least for frame serving from DVD2AVI thru mpeg2dec.dll. It makes wierd colors. I even think I remember something about that from a complaint about 1.83.
I'll search but does anyone remember this? I'm going to try to at least get at least basic P4/SSE2 code and (non-P4) cropping, and resizing working properly. And then turn them over to Sourceforge or someone else.
But not any noise reduction code or other new features now. Sorry.
- Tom
edit: But remember resizing in dvd2avi or mpeg2dec has limited value because the IVTC/deinterlace is not that good, and you have to do those before resize. But in the cases where Force Film is good enough then integrated resize is useful.
DDogg
25th March 2002, 04:08
Well for me, and I think a lot of folks, FF is used 95% of the time. For some reason I had it in my head that serving a resized frame would be quicker than serving the original frame, but the more I think of it I guess you have to "reach in and grab" the full sized frame anyway so that you CAN resize it...so maybe it would not make a difference anyway.
Yeah, I can understand you not wanting to jump on that noise reduction thing :)
BTW, the last version I have looked at is 1.85. I do not believe resizing is active?
trbarry
25th March 2002, 05:59
I'm not sure all the various release numbers are really in order. I'm working from the version of (I think) 1.83 pre-source that went into the Sourceforge project. For frameserving mpeg2dec.dll I've got the version that was posted above, I think by Int 21h in this thread.
- Tom
vlad59
25th March 2002, 09:30
I just make a copy/paste of an old post I post (on page 5) :
>I just downloaded dvd2aviT2 (Trbarry's version) wich is base on >Dvd2avi 1.83 (by OGO).
>
>There was a lot of new Dvd2avi some weeks ago
>
>So to make everything Clear :
>Dvd2avi 1.84 and 1.85 new features (Author Gloval) :
>- MP3 compression with lame_enc (-> crash on my C600, don't know >why)
>
>Dvd2avi 1.76.16 new features (Author : Precis F. Neumann) :
>- ACM support for audio (-> crash on my C600, don't know why)
>- maybe something else I have no source and no readme
>
>Dvd2avi 1.76 Commandline 1.04 new features (By DVD2SVCD)
>- Commandline options
>
>And Nic additions :
>- 2-pass code and many other things
>
>I think there was no more official prog based on Dvd2avi 1.76.
>
>My main pb is v1.76.16 I can't remember where I found it.
Tom'release is based of v1.83 from OGO when he tried to implement SmartDeinterlace in it. The only thing OGO has fully implemented is the resize filters of Avisynth in DVD2avi (not in mpeg2dec.dll).
As far as I can remember, there wasn't any release of mpeg2dec.dll with crop or resize capability.
Hope this helps.
vlad59
25th March 2002, 10:03
For the cropping :
The crop function of DVD2AVI works fine with VFAPI but produce weird colors with Mpeg2dec.dll.
I think someone began to add crop parameters to Mpeg2dec.dll (wich is quite easy) but I don't remember if he has finished or not.
Nic
25th March 2002, 12:38
Ivs started to work on DVD2AVI, now that all the meddlers seem to have disappeared....
Ive had my version that Ive been using for ages (for two pass, deinterlace audio etc for ages), but im starting from scratch to make it neat & tidy :) .
The way im thinking of doing it this time is some what strange & convoluted but it seems to be pretty seemless, so I think ill stick with it
(as always im really only doing it for myself, but if I do it neatly ill release it)
The way Ive done it so far, is to add an extra save menu option which (in a simplified manner) creates a d2v, then an avs script with your set params, then uses that to frameserve the d2v in to itself(DVD2AVI)....and then compresses (1pass & 2pass) (it uses standard ICM/AVIAPI routines, but does it quicker than VDub with FastCompress)
& although that sounds really stupid :) It works great... :D
I also am going to add OGM support & put full VStrip support using the VStrip DLL in. (im not sure quite what to do for audio, ill leave that last)
Also, hopefully with Tom's support put in, SSE2 code neatly in.
Then ill be done again for a while....just thought Id let you know....ill keep you posted.
-Nic
trbarry
25th March 2002, 13:28
Nic -
Sounds cool. My own activities have pretty much been restricted to GetPic, allocate, and the idctmmx member. So it might pretty much be a drop-in if you wanted to add it to your more elaborate changes.
But I'm still interested in using DVD2AVI for frame serving to I'm trying to do my own changes also to mpeg2dec. (except maybe resize, if it's not there)
- Tom
Nic
25th March 2002, 13:32
If your looking into MPEG2DEC.DLL, any speed increase would be a major plus....Have you looked at the code for the TemporalSmoother...I know if you could add better ASM support (say SSE2) that would be very popular (as TemporalSmoothing, is so CPU intensive & used alot)
Cheers,
-Nic
ps
I havent been following the thread (as I left it when it all got silly with the talk about the name & the CVS, etc)...But I assume your latest source for those c files are in this thread? or is there a newer download? Thanks alot Tom :)
trbarry
25th March 2002, 13:48
Nic -
I haven't looked at TemporalSmooter. To be honest I wasn't even planning that much more work to DVD2AVI. But I do have a P4 version working. I'll probably just put the DVD2AVI source back in Sourceforge since it is based upon that version.
I also have P4 support working for mpeg2dec. But I'm not sure exactly which version it's based upon as it doesn't match the mpeg2dec stuff in Sourceforge. I'm going to try fix the crop and maybe resize and then I'll post it somewhere or replace the Sourceforge mpeg2dec stuff if that's what everyone wants.
But I don't to be in the position of first level support person fielding requests for these two, so I have mixed feelings about it all. ;)
And I'll say in advance that if VFAPI support is broke it'll stay broke. I've never used it and don't even know how it works.
- Tom
Nic
25th March 2002, 13:52
I can understand that :) , Thanks for the info..... :)
(The VFAPI comment made me laugh :) )
Cheers,
-Nic
DDogg
25th March 2002, 15:21
Tom, I am also primarily interested in the frameserving aspect of dvd2avi for svcd. If you would keep me in mind and occassionally email me a copy of what you are working on it would be appreciated. Although I am backing away from the forum a bit, I would still like to do some testing.
DDogg
25th March 2002, 16:08
hmmm, I found Farok's version buried in this thread that does do resizing
http://profmegot.free.fr/dvd2avi
I'll test it for speed when I get a chance. He has done some nice work on this version!
EDIT:Duh, I guess most of this stuff is being done for the divx crowd, Farok's version does not frameserve. Anybody know of a version that does frameserve with free resizing (I need 480x480 or 480x360) that I can download?
vlad59
26th March 2002, 17:28
Farok and OGO have modified DVD2AVI to use it as a standalone tool.
So if you want to use it as a frameserve tool, you will have to use mpeg2dec.dll.
Dividee included somme other Avisynth function in mpeg2dec.dll (temporal smoother, maybe smartDeinterlace I don't remember) but the interesting part is the D2vloader with DVD2AVI code.
pcdvdguy
29th March 2002, 05:41
trbarry, I've modified the "stock" DVD2AVI (1.76) to directly accept MPEG-2 transport streams. (and mpeg2dec.dll, as well)
I'd like to merge my changes into the sourceforge.net project, but I think it would be easier if you checked in your pending changes first, then I checkout files from the updated repository. I didn't add any user-interface for the user to select the stream-IDs, so I stuck these into the dvd2avi.ini file. The stream-ID is stored in the d2v project file, so mpeg2dec.dll and dvd2avi.vfp directly read the stream-ID from the project-file.
This works with the *.trp files captured on my WinTV-D, but each time I want to open a stream from a different broadcaster (who uses different PIDs), I have to quit and hand-edit the dvd2avi.ini file. Perhaps some of the more Windows-savvy programmers can update the GUI to add a dialog-box to the DVD2AVI application.
Any idea on when you might be able to commit your code changes?
trbarry
29th March 2002, 13:56
trbarry, I've modified the "stock" DVD2AVI (1.76) to directly accept MPEG-2 transport streams. (and mpeg2dec.dll, as well)
Yes! I've been hoping someone would do that. :)
I'd like to merge my changes into the sourceforge.net project, but I think it would be easier if you checked in your pending changes first, then I checkout files from the updated repository. I didn't add any user-interface for the user to select the stream-IDs, so I stuck these into the dvd2avi.ini file. The stream-ID is stored in the d2v project file, so mpeg2dec.dll and dvd2avi.vfp directly read the stream-ID from the project-file.
I will check them in this morning. Sorry I did not see this message last night. Have you looked at Ben Cooley's code in HDTV2mpeg2 now that displays & chooses the PID's?
- Tom (trbarry at trbarry. com)
trbarry
29th March 2002, 14:41
pcdvdguy -
My changes should be in CVS:
- Working P4 support, including a fix contributed to idctmmx by DmitryR for idct bug.
- New aligned_malloc function that doesn't need a fixed size table that overflows.
- Sloppy fix to double some buffer sizes so HDTV material with the usual garbage break-ups does not cause crash in motion estimation rtns.
- Something else I forgot?
If you are doing HDTV and frameserving then you might also be interested in my version of mpeg2dec.dll that also has these fixes, plus some optimizations and a fix for the chroma crop bug. I did not put it in CVS because it is not based upon the same version.
Be aware also that I cannot convince myself that the existing color conversion code is correct when doing frame-pictures (480p, 720p?) at least in mpeg2dec and maybe in DVD2AVI. I'll be looking at this some more. And is the color space the same for DVD & HDTV?
My version of mpeg2dec.dll is based upon a newer version converted by someone to .cpp (with Dividees filters) but I can't remember where I got it. If anyone remembers sending it to me or discussing it please contact me. Otherwise if there are no objections I may just blot the one in CVS with this one. I just have a total brain outage on the source of this.
Any comments or objections? Anybody?
- Tom
pcdvdguy
30th March 2002, 05:41
> Have you looked at Ben Cooley's code in HDTV2mpeg2 now that displays &
> chooses the PID's?
Yes...Ben Cooley's program was my inspiration for making these changes to DVD2AVI!
As I noted earlier, the my main obstacle to adding native program-selection was the Windows-programming aspect (GUI.) So for now, I've left the PID-selection in the dvd2avi.ini file. This is definitely not a good long-term solution, and it's only temporary until some Windows coders can clean this up and add a nice dialog-box for selecting program-IDs.
> And is the color space the same for DVD & HDTV?
The color-space is specified somewhere in the Video_seqence_header. I'm pretty sure the default color-space is CCIR-601 compliant (which means a pixel-magnitude scale of 16-240. In most video broadcast applications, I think the values 0-15, and 241-255 are reserved for other data. But the guys at avsforum.com would know more about this than me!)
How should I go about adding my changes to the CVS repository? I only have a Celeron2, so once I make my modifications, I can't re-verify your code changes. (In other words, I might break some of your code, but not even know it, because I don't have SSE2.)
** UPDATE **
hmm, I can't seem to find the dvd2avi.vfp (VFAPI plugin filter) in the CVS repository. I followed the directions (for WinCVS) posted a few pages back. What am I missing?
trbarry
30th March 2002, 06:29
pcdvdguy -
Let's worry about Gui changes later. That's not my own strong suit either but I'll probably eventually add that if no one else does. Could you at least make it so if the ini file specifies the PID's as zero then it will take the first (or lowest?) pair it finds? I think that's usually correct for most HDTV stations.
On the color issue, the default for HDTV is BT.709 unless specified in that sequence_display_extension. I sampled about 3 HD clips from different sources by setting stops in DVD2AVI (or mpeg2dec?) and none of those headers were present. That is probably good because the data would have then been ignored anyway.
I don't know if specifying PC_Scale (full luma range?) is enough to handle this right for HDTV clips but I do notice that some dark HDTV scenes seem awfully muddy for some reason, even before re-encoding. But my UPN Buffy up-converts are always dark anyway, so who knows?
I guess you should just put your code back in CVS when done. That makes it easiest to note the changes. It's not likely you will break any P4/SSE2 code unless you are modifying those sse2 specific assembler sections. The only exception is making sure to use aligned_malloc to keep the data buffers on at least 16 byte boundaries.
I'm looking forward to trying this. :)
- Tom
trbarry
30th March 2002, 06:47
** UPDATE **
hmm, I can't seem to find the dvd2avi.vfp (VFAPI plugin filter) in the CVS repository. I followed the directions (for WinCVS) posted a few pages back. What am I missing?
I have never used vfapi and don't know how it is created. You can get one in the Gordian Knot package here but I don't know what source you would use and it likely wouldn't help with your ATSC streams.
DVD2AVI can encode files directly by saying 'save avi'. Or if you 'save project' then the actual file reading and mpeg2 decoding happens in mpeg2dec.dll instead, passing the decoded data off to Avisynth or whatever. I think vfapi is similar but I never built one.
If there is not a vfapi project in sourceforge then check out www.trbarry.com/DVD2AVIT3.zip . This has the current source I was working on and should have the vfapi project as of the 1.83 pre-release that I started from. But I've made no attempt to change it and have no idea if it works.
- Tom
pcdvdguy
30th March 2002, 08:52
WinCVS tells me I don't have write-access to the forum. Looks like I forgot to email the admins and ask for write access :)
trbarry, here are my code-changes,
http://members.tripod.com/~liaor/dvd2avi_cvs.zip (for DVD2AVI.EXE)
http://members.tripod.com/~liaor/mpeg2dec_cvs.zip (for mpeg2dec.dll)
for DVD2AVI, you should be able to unzip my changes into your source directory (overwrite older files.) Then recompile!
the mpeg2dec.dll is based on the 08/16/2001 release, from the archive at http://www.davetech.org/software2.htm
about the vfapi module...
I thought it was called whenever you read a *.d2v file from another application which supports VFAPI (TMPEG, BBMPEG, etc.)
> On the color issue,
Ok, I have to admit I was talking out of my rear :) I assumed DVD MPEG-2s and HDTV MPEG-2s used the same color-space, but it's been so long since I've looked at the innards of an MPEG-decoder, I no longer remember what I am talking about!
> Could you at least make it so if the ini file specifies the PID's as zero then it will take the first (or lowest?) pair it finds?
Unfortunately, this requires the program to analyze the stream for several megabytes. I like your idea, but I will defer implementing it until we have a nice dialog-box which lists the located programs. (I look at the first 2048 bytes, to determine whether the input-file is an MPEG-2 transport stream.) For now, you'll have to hand-edit the dvd2avi.ini file and enter the (hex) VideoID and AudioID streams. If you want to add this function yourself, a good place to put it would be in mpeg2dec.c.
Oh, if replacing an older dvd2avi.exe in the same directory, be sure to delete the dvd2avi.ini file the first time you run! The new dvd2avi needs to create an extra entry in the DVD2AVI.ini file, and this only happens if it can't find the file.
Nic
30th March 2002, 12:28
Wow, it seems like many people are working on DVD2AVI,
If you want to specifiy exactly how you would like the dialog box for pid selection would like then tell me & ill whip it up :)
Cheers,
-Nic
ShinerSpoon
30th March 2002, 15:21
I have always wondered what exactly happens when a D2V is opened in TMPG or avisyth via mpeg2dec in an avs file. Could one of you consider explaining the actual process that delivers frames to an encoding application using these two methods?
I know this is a big request, but I am sure it would be appreciated by many.
trbarry
30th March 2002, 16:40
pcdvdguy -
I've merged the dvd2avi codes and it seems to work. Kudos! ;) ;)
(what does "props" mean that everybody says these days?)
CVS is updated. I added your newer readme file as a text file since CVS doesn't like doc.
I'm still looking at the mpeg2dec code. I'll have to add the aligned malloc's & buffer size stuff or else my P4 code won't work anymore.
I still haven't figured out what version of mpeg2dec.dll I'm workng with but it seems to be newer than others. It has dividee's filters and is converted to cpp.
I guess I'll just post it all if no one says anything. And then I guess merge it into the save-oe project somewhere later. My apologies in advance to whoever did the newer updates in it and deserves credit.
- Tom
trbarry
30th March 2002, 17:27
I have always wondered what exactly happens when a D2V is opened in TMPG or avisyth via mpeg2dec in an avs file. Could one of you consider explaining the actual process that delivers frames to an encoding application using these two methods?
ShinerSpoon -
Let's assume you are using DVD2AVI to make a project file and then frameserving using MPEG2DEC.dll/Avisynth/Virtualdub to encode.
During the first step DVD2AVI has its own version of mpeg2dec.dll code imbedded in it which it uses to decode for preview, or if you save the avi file directly.
But if DVD2AVI saves a project file it is not actually taking the time to decode the entire file. It just spins thru it and notes the offsets of of each Group of Pictures that can later be self sufficiently decoded. It saves a list of these offsets, along with the offset of each frame, in a text file of yourprojectname.d2v, along with some other parms and preferences that you may have chosen. You can browse that file with any editor but you have to know what you are doing if you change anything.
Now say we open Virtualdub, and within that we open a file of type .avs that happens to be an Avisynth script.
When Avisynth was first installed it registered the Avisynth.dll file to get control whenever a .avs file is opened. This acts like a system hook on the file system.
So vdub opens the file and Avisynth gets control. It reads the avs script and builds a little program in memory.
Avisynth evaluates the avs script once expecting the result will be a record to return. But the beginning of the avs script would have had a command at the top like:
LoadPlugin("D:\mpeg2decB\debug\MPEG2DEC.dll")
This would have told Avisynth to load the mpeg2dec.dll which has yet another copy of the mpeg2 decoder in it. But this version does not read an mpeg2 file sequentially.
The avs script would also had a line in it something like:
videoclip=mpeg2source("D:\D_VCR\Buffy\M2v\buffy_flood_30.d2v")
When Avisynth executes the above script line the first time (at open) it calls the loaded mpeg2dec.dll module and passes it the file name of the d2v project file you specified when you did a "Save Project" in DVD2AVI.
Mpeg2dec reads that .d2v project file and from it gets parms, the real target mpeg2 file name(s), and the table of file offets mentioned above. It then returns some of that needed information to Avisynth.
Avisynth then passes back control to Virtualdub with all the needed info as if a real file was opened. But the attributes returned reflect also the effects of the rest of the avs script. This is done by magic.
But now vdub goes to read a record of some specified number. This causes Avisynth to be invoked again, with a read request for a certain record number. Avisynth calculates the return value of the script. But that (usually last) line of the script in turn relies on a previous command which eventually relies on a record from videoclip.
And Avisynth recognized that videoclip variable as being something that requires calling mpeg2dec.dll to get a record.
Avisynth calls mpegdec.dll for the needed record (not always the same number as vdub wants), grinds it through all the avs functions and returns the result to virtualdub which thinks it has read a record. And around it goes.
Whew! Don't I blather! But you asked. ;)
- Tom
trbarry
30th March 2002, 18:13
Wow, it seems like many people are working on DVD2AVI,
If you want to specifiy exactly how you would like the dialog box for pid selection would like then tell me & ill whip it up
Nic -
Nifty. I'll let pcdvdguy reply but probably it would be just like the audio tracks are selected now, except pcdvdguy's code could maybe supply the proper pid numbers. You could select both a video and an audio pid.
And usually the network program is using the lowest pid numbers for their main program. I think they have found that some set top boxes have trouble with other sub channels. To be honest it is probably just 11 and 14 on most channels. But there are exceptions.
I wonder how different DVB is?
- Tom
pcdvdguy
30th March 2002, 19:15
trbarry, I don't have an HDTV in my house, just a WinTV-D card (for my PC), so a lot of 'systems issues' escape me. I'm not trying to duck out of responsibility here, but I think you're a better candidate to direct the GUI-portion of the transport-stream code. You have a better understanding of the programID organization, and access to more test material.
> except pcdvdguy's code could maybe supply the proper pid numbers. You could select both a video and an audio pid.
Currently, the code in getbit.c isn't really setup to 'scan' for pids. In my brief look at dvd2avi's code, I believe the best place for this is mpeg2dec.c. If I'm not mistaken, that's where the application opens the input-file.
> I still haven't figured out what version of mpeg2dec.dll I'm workng with
It's not the same one at http://www.davetech.org/software2.htm ?
That package's source code seems to be only *.cpp, and it's the one I used.
...
On another note, when I open 1920x1080i MPEG2s, my DVD2avi window gets cropped on my desktop. I normally set my desktop resolution to 1152x864 or 1280x1024. I made an experimental change to gui.cpp, which automatically halves the main-window's size (if hsize > 720 or vsize > 576.) This works, but the preview window (Directdraw overlay) is still setup for 1.0x zoom, so only the video's upper left quarter is visible! Therefore, this modification isn't part of the code published on my website.
// from gui.cpp
void ResizeWindow(int width, int height)
{
// rsl
if ( Coded_Picture_Width > 720 || Coded_Picture_Height > 576 )
{
// Cut preview-window down by HALF (in both X and Y directions)
width = width >> 1;
height = height >> 1;
}
// we've cut the application window size in half, but the directdraw overlay
// surface is still configured to render at 1.0x! This means the preview
// window will 'crop' the disaplyed-video to the top-left corner!
MoveWindow(hTrack, 0, height, width-4*TRACK_HEIGHT, TRACK_HEIGHT, true);
MoveWindow(hLeftButton, width-4*TRACK_HEIGHT, height, TRACK_HEIGHT, TRACK_HEIGHT, true);
MoveWindow(hLeftArrow, width-3*TRACK_HEIGHT, height, TRACK_HEIGHT, TRACK_HEIGHT, true);
MoveWindow(hRightArrow, width-2*TRACK_HEIGHT, height, TRACK_HEIGHT, TRACK_HEIGHT, true);
MoveWindow(hRightButton, width-TRACK_HEIGHT, height, TRACK_HEIGHT, TRACK_HEIGHT, true);
GetWindowRect(hWnd, &wrect);
GetClientRect(hWnd, &crect);
Edge_Width = wrect.right - wrect.left - crect.right;
Edge_Height = wrect.bottom - wrect.top - crect.bottom;
MoveWindow(hWnd, wrect.left, wrect.top, width+Edge_Width, height+Edge_Height+TRACK_HEIGHT, true);
}
trbarry
30th March 2002, 19:28
I have an HD RPTV but my only receivers are a WinTV-HD, HiPix, and Wintv-d cards. Only the WinTV-HD is currently installed. The HiPix is new and I haven't tried it yet.
I'll put in a pid scan if I can steal it from Ben's code and Nic can do the gui.
When opening a large image like 1080i I have to immediately go into crop/resize and click reset. This has been true since 1.81 or somewhere. But then of couse I can't see it all so I crop and resize.
If I am frameserving through the new mpeg2dec.dll then the crop will be honored (now works) and the resize is ignored so it works out well.
I've merged the two mpeg2dec's now and am testing. News soon.
- Tom
ShinerSpoon
30th March 2002, 22:28
Tom, it was real decent of you to take the time to explain all that. While I have used the functionality many many times I never quite 'got it' as far as what was really going on. It worked and I was happy. Now I better see how the process flow is.
On that note, I am confused on why the resize works so well when saving an avi, but not via mpeg2dec or opening the D2V in TMPG. I would assume from what you said that the internal mpeg2dec must have more funtionality than the external one? Or, is it something to do with the actual frameserving process?
trbarry
30th March 2002, 23:10
ShinerSpoon -
Glad to help.
The main reason that mpeg2dec.dll doesn't resize yet is just because there is no code in it to do that. I've thought about it a couple time but I use it mostly with Avisynth and there wouldn't be that much of an improvement in doing it in mpeg2dec vs. just adding a resize filter to my script.
And doing it in mpeg2dec has the disadvantage that you can't then do a deinterlace or IVTC filter first so it may be some time before I add that, if ever.
I was mostly just concerned with speeding it up and it seemed a shame that the cropping was busted since the code was already in.
- Tom
trbarry
30th March 2002, 23:24
@pcdvdguy, @Nic, @* -
I have pcdvdguys changes integrated into my own and I put the whole thing including source & dll at www.trbarry.com/mpeg2dec2.zip
This is just a TEST version!
It handles regular vobs plus ATSC streams with the limitations pcdvdguy mentioned. It also can use DmitryR's P4/SSE2 code when available and when iDCT_Algorithm=5 is specified the .d2v file (from the newer DVD2AVI, or edit).
It handles cropping without creating strange colors but will still ignore resize parms.
It also doesn't crash as easy on HDTV or DVB garbage data.
It should be a bit faster on P4's and I'm still looking for other places to optimize it.
As far as I can tell it's based upon the source from dividee's site or davetech but I'm still pretty sure I was given a copy that already had a start on the P4 code. But I guess it doesn't matter.
Just copy mpeg2dec2.dll out of the zip and call that instead of your old one. There's a readme file in the zip.
- Tom
A_Pleite
2nd April 2002, 18:27
@trbarry
Quite interesting, your explanation
When I read this, I thought that the d2v-file is only really necessary to manage b-frames, right :confused:
Question:
If I encode a (mpeg2-)avs with VDub, does the mpg2dll decompress the frames in an intelligent order (there are problems with b-frames in divx5)
Is there a binary of the new DVD2AVI somewhere (I´d like to test it)
If you don´t know, please mail: vip_nr9582@yahoo.de
trbarry
2nd April 2002, 20:24
When I read this, I thought that the d2v-file is only really necessary to manage b-frames, right
I think there a number of reasons why it's needed, but mainly.
- If you just open up an mpeg2 file with a dshow filter or by reading the beginning of it you don't know exactly how long it is, or how many frames. But programs like Virtualdub need this info.
- For Virtualdub editing or even for some filters (say Decomb) it is necessary to be able to read records randomly, by record number.
DVD2AVI makes this possible by storing the needed info in the .d2v file.
If I encode a (mpeg2-)avs with VDub, does the mpg2dll decompress the frames in an intelligent order (there are problems with b-frames in divx5)
B-frames have been a part of mpeg2 since the beginning. I'm not aware of any problems there but I didn't go looking in the code for them.
Is there a binary of the new DVD2AVI somewhere (I´d like to test it)
I've added some other P4/sse2 optimizations that I picked up from various places, to both mpeg2dec and dvd2avi. I'll try to post test versions of both later today. I'll report back here when I do.
- Tom
A_Pleite
2nd April 2002, 22:37
Thanks for the post :)
but
Originally posted by trbarry
...
B-frames have been a part of mpeg2 since the beginning. I'm not aware of any problems there but I didn't go looking in the code for them.
...
I think the Question was taken too unclearly. I meant: You can´t deencode the mpeg2-stream in the same order as the encoding. Does the encoder (VDub) ask for each frame seperatey or does avisynth (or mpeg2dll or VDub) notice that more than one frame is needed in a queue? If the encoder asks for each frame seperately, the decoding should be slow (so maybe this question is a bit stupid, since they are a lot of intelligent guys who spent all their speartime for speeding up this kind of tools and dlls) :)
I've added some other P4/sse2 optimizations that I picked up from various places, to both mpeg2dec and dvd2avi. I'll try to post test versions of both later today. I'll report back here when I do.
"MI" is not in Europe, right ;)
A_Pleite
trbarry
2nd April 2002, 23:52
A_Pleite -
I think the Vdub problem was in trying to accept an encoded stream with b-frames out of order. In the case of mpeg2dec the frames are decoded and in order as Vdub gets them. I prepared a longer reply but my browser hiccupped when I hit enter and it's gone. :(
I've put TEST versions of the two projects including source and bin at
www.trbarry.com/DVD2AVIT3.zip and
www.trbarry.com/mpeg2dec2.zip
These have the P4 optimizations and other changes mentioned above. Just copy out the renamed dvd2avi2.exe and mpeg2dec2.dll modules.
- Tom
int 21h
3rd April 2002, 01:04
Hmmm, this seems to go slower than the regular mpeg2dec build...
Compiling via Intel Compiler now.
trbarry
3rd April 2002, 02:54
Strange, it was faster for awhile.
Maybe I left some debugging stuff in it. I'll check.
- Tom
macdaddy
3rd April 2002, 06:24
The mpeg dll speeds things up for me, and I tested serving over a network. I didn't think I would get a boost at all because I am using amd hardware. The speed bump isn't huge (and I was serving over a network) but every little bit helps. Thanks for sharing...
Ditto with the new dvd2avi exe (again over a network). Everything seems to work. btw, what is a session, and why would I want to save or load one? I have never seen that before (and I've been using the program for years)...
___
I assume that is the same pcdvdguy from avs. The cross-pollination is pretty sweet...
Thanks again.
trbarry
3rd April 2002, 07:08
Hmmm, this seems to go slower than the regular mpeg2dec build...
int 21h -
If you are testing on a P4, make sure that the idct type in the d2v file=5. Otherwise it will not use the P4 version of the idct code. You can do this by using the new dvd2avi and selecting sse2 idct or you can just edit the d2v file.
But I admit it is not as fast as I thought. If I one at a time remove my performance improvements, recompile, and test, they each seem to have made a difference. But so far the net gain is not really enough to beat the version I can get with Gordian Knot. Though it's mostly too close to call.
So there is either some better code with that Gordian Knot version or someone knows a bit more about C++ compiler settings. This would not be a surprise to me so if anyone is conversant in VS6/C++ build options I'd love to have some feedback. The project and workspace files are in the zip so maybe it will be obvious to someone.
But I guess it all still gives me HDTV/ATSC streams & cropping thrown in for free, so what the heck.
And I'm not done yet.
- Tom
ShinerSpoon
3rd April 2002, 16:19
Tom, just in case you overlooked this:
http://aquaplaning.20m.com/
I think that was the source Dividee modified. The aquaplaning source was a mod of the original source from Mathias Born.
int 21h
3rd April 2002, 17:07
Originally posted by trbarry
int 21h -
If you are testing on a P4, make sure that the idct type in the d2v file=5. Otherwise it will not use the P4 version of the idct code. You can do this by using the new dvd2avi and selecting sse2 idct or you can just edit the d2v file.
But I admit it is not as fast as I thought. If I one at a time remove my performance improvements, recompile, and test, they each seem to have made a difference. But so far the net gain is not really enough to beat the version I can get with Gordian Knot. Though it's mostly too close to call.
So there is either some better code with that Gordian Knot version or someone knows a bit more about C++ compiler settings. This would not be a surprise to me so if anyone is conversant in VS6/C++ build options I'd love to have some feedback. The project and workspace files are in the zip so maybe it will be obvious to someone.
But I guess it all still gives me HDTV/ATSC streams & cropping thrown in for free, so what the heck.
And I'm not done yet.
- Tom
I am using a P4, and I did edit the .d2v file :) It still however, does not beat the version I made (from the original source code), with the Intel Compiler (P4 specific generated code, specified with switches to the compiler).
I also can't get your source to compile with the Intel Compiler because of the macros defined on the commandline (Mpeg2dec), if I remove those, it compiles, but then doesn't link, I get unresolved externals, I really didn't look at it too much, so its probably an easy error to fix.
Honestly, I think the original SSE MMX iDCT is as-fast as the new SSE2 version.
Its getting closer to the point where there is not much left to speed up, except by switching to more inline asm, unrolling loops (which the Intel compiler already does), vectorizing loops (which the Intel compiler does), etc.
trbarry
3rd April 2002, 17:23
Honestly, I think the original SSE MMX iDCT is as-fast as the new SSE2 version.
Its getting closer to the point where there is not much left to speed up, except by switching to more inline asm, unrolling loops (which the Intel compiler already does), vectorizing loops (which the Intel compiler does), etc.
I posted elsewhere about this a couple months ago but I think there was about a 5% speedup in dvd2avi with the sse2 idct. And at the time I was using a trial version of Intel Vtune which said the lion's share of dvd2avi processing was in the various form_prediction functions so I was glad to get sse2 code for that. But I admit it doesn't seem to have helped much in mpeg2dec.dll yet.
I don't have the Intel compiler but I'm going to try VS6 compiles of some of the other mpeg2dec sources I have. If I start from the best one and retrofit the other changes into it then I can compare better.
But I'm a little confused at this point. The changes helped for dvd2avi and it does substantially all the same things.
But I'm first going to see if there was a penalty for the C++ conversion of mpeg2dec. I don't always trust C++ to not be doing something helpful (but slower) behind the scenes.
But I'm not trying to open a debate about the merits of the languages here, just performance issues.
- Tom
Dr. Frankenstein
3rd April 2002, 17:45
Hi Tom,
I just removed the slash in front of MPEG2DEC_EXPORTS, so I wrote /D "MPEG2DEC_EXPORTS" instead of your /D /"MPEG2DEC_EXPORTS". After this I could compile using Intel Compiler and I doubt that MSVC would compile that (but I haven't tried).
Int 21h, you can always try to use MSVC and only use Intel Compiler on the files that you really care about by setting _USE_INTEL_COMPILER settings for the file.
Dr. Frankenstein
A_Pleite
3rd April 2002, 18:40
I made a short test with ssemmx, saving an avi directly (I know that this hasn´t really been optimized, but I wanted to see it ;)). I used the xvid-null->test speed option.
The new version of DVD2AVI is ~2% faster than the old one ;)
trbarry
3rd April 2002, 20:24
int 21h -
I did a bit more thorough testing which leads me to believe your Intel compiler is just more efficient. I downloaded the current Doom9 mpeg2dec source (including binary dll) again and compared times.
I made a short d2v project with the old dvd2avi 1.76, a clip that takes about 4 minutes for xvid 1st pass using Avisynth and Vdub.
I then tried it with the mpeg2dec binary from Doom9. 3:56 minutes
I compiled the Doom9 mpeg2dec source and tried that. 3:56 minutes
I tried it with my sse2 version, but still with idct=2. 3:45 minutes
I then edited the d2v file so idct=5. 3:38 minutes
Finally I redid the d2v file with the new dvd2avi and specified that mpeg2dec should do the cropping, removing the crop filter from my avs script. 3:31 minutes.
I did each test twice. The results varied by maybe a second and I took the average, summarized below with time in seconds, and savings:
Test Seconds Tot Pcnt Saved
mpeg2dec binary from Doom9 234
Doom9 mpeg2dec source 234 0.0 %
SSE2,IDCT=2. 225 3.8 %
SSE2,IDCT=5 218 6.8 %
SSE2, IDCT=5, mpeg2dec crop 211 9.8 %
The last 3-4 % should apply to anyone, even without sse/sse2.
If the problem is with my compiler settings or libraries at least they are no worse than that used on the Doom9 binary.
My previous experiments with DVD2AVI and Vtune suggested about half of the cpu time was spent in DVD2AVI with the rest in xvid, testing with direct save. If this is true and also applies roughly to mpeg2dec, then this means on P4's the new mpeg2dec is almost 20% faster even though the total job is only 9.8% faster.
I'm hoping if you compile this with your Intel compiler you will see the same proportions, and for a greater total savings. If so, can I have a copy of the binary?
Is the Intel compiler expensive?
- Tom
int 21h
3rd April 2002, 20:42
@Dr. Frankenstein:
Thanks for the tip, I'll try it when I get home.
@trbarry:
I'll do a more complete test when I get home tonight, and I should be able to compile with the Intel compiler due to the Doctor's tip for the compiler. I'll be glad to give you a binary of the compiled .dll. I usually just pass the compiler all of the Pentium 4 specific options, and cross my fingers and hope it optimizes and vectorizes stuff for me, because I'm usually not intelligent enough or blessed with enough time to do it all manually (vectorization, loop unrolling, etc).
I'm not sure how much the Intel compiler is because I have access to it through my employer.
The only other thing I can think of is a problem with my OS installation. It seems to me, I used to be able to get about 1.4 with CCE, and now I get about 1.026 (After a reinstall of Windows a month or so ago), so I think I may have installed drivers for the system in the wrong order and maybe something isn't working right..
ShinerSpoon
3rd April 2002, 21:43
Tom and all, I completely realize this is a work in progress and a test version only, but I was curious if the besweet option in the version you linked is operational (since it was not greyed out)? If so, would anybody know the proper setup to use it or where to put the besweet files (or dll?)?
int 21h
3rd April 2002, 21:49
Originally posted by ShinerSpoon
Tom and all, I completely realize this is a work in progress and a test version only, but I was curious if the besweet option in the version you linked is operational (since it was not greyed out)? If so, would anybody know the proper setup to use it or where to put the besweet files (or dll?)?
It isn't operational, I haven't had nearly enough time to work on it..maybe someday I'll find some free time. (I have the task of BeSweet Integration)
Not to step on anyones feet or anything...but I have been discussing BeSweet with DSPGuru over past few days & I should have it implemented by tomorrow or the next day.
I finished my initial VStrip integration, its very basic. But does the job for now.
-Nic
A_Pleite
4th April 2002, 00:39
My first DVD-Backup(2001) with the new version (remember, ~2% faster) is now almost ready. :D
@nic an included vstrip.dll means that we don´t have to store the whole unencrypted DVD on our HD´s anymore, right? ;)
No its just for ripping...encoding straight from DVD has never been a good idea. :)
-Nic
trbarry
4th April 2002, 00:45
Nic -
Are you going to release changes to Sourceforge then? I'd love to have a copy of the version that builds a qwik avs script and executes it (if I remember all this right from another post of yours).
As far as stepping on toes, I don't know if anyone was even spending any time at all on save-oe/dvd2avi until a flurry of activity got touched off by pcdvdguy's interesting changes. I know I wasn't.
But that got me feeling guilty and I thought I should at least finish a couple of the things I'd talked about.
- Tom
Of course it will all be released...ill implement it into your changes or vice versa (I love liaor's Transport stream mod :) I want to work on making that a bit more user friendly...I deal in TS more than I do PS - So it was a very useful addition)
Cheers,
-Nic
trbarry
4th April 2002, 00:56
Nifty. My DVD2AVI stuff (and liaor's) is all in CVS now, so have at it. ;)
- Tom
int 21h
4th April 2002, 00:57
http://phreak404.virtualave.net/mpeg2dec2.dll
that's compiled with the Intel Compiler.
I'm not sure my system is the best to benchmark with, because I'm pretty sure something isn't right... Can anyone give me a CCE speed they get with X mhz with that so I can compare?
trbarry
4th April 2002, 01:17
int 21h -
I don't use CCE but on my system your dll ran 214 seconds on my last bench test above, 3 seconds longer than what I got earlier. But still faster for P4's than the Doom9 binary.
So it's not just a difference of the Intel compiler. I've been tinkering since yesterday so I'll recheck if I get exactly the same results from the zip I posted as I did in my testing this morning.
- Tom
edit: I just retested the one in the zip I had previously posted and it came out exactly the same as yours, 214 seconds. So the compiler doesn't matter, at least in this case. I have no idea which of my tweakings in the last day gave the extra 1.5% improvement in my own current test copy so I just replaced the one on my web page.
at www.trbarry.com/mpeg2dec2.zip
int 21h
4th April 2002, 01:42
Time taken for a 3:08 clip in CCE. No resize or cropping.
Time | Library | IDCT | Compiler
2:45 mpeg2dec.dll 2 Intel
2:37 mpeg2dec2.dll 5 Intel
2:39 mpeg2dec2.dll 2 Intel
2:35 mpeg2dec2.dll 5 MSVC
Weird, I'm sure I passed it the right options I think :confused: (/O3 /G7 /QxW).
Did you change code in your tweakings or just Project Options in MSVC?
trbarry
4th April 2002, 05:02
The new source is out there so you could compare the Getpic.cpp function and header, but I'm not sure what I did.
I think I was only playing with which combination of form_prediction functions are stated to be inlined in the header but I may also have reordered the functions in the source.
I do not understand the restrictions on inlining functions in VS6/C++ but some combinations would cause a crash, so I tried a few.
I also turned on automatic inlining under the optimizatins tab in the project settings once I had a combination that seemed to work. But at the time I was doing all this I was counting crashes, not seconds and it doesn't make enough difference in time to notice if you aren't keeping track carefully.
So it's still sort of mystery. ;)
- Tom
int 21h
4th April 2002, 05:07
After I finish this code for Uni, I'll look at it some more. I know that Intel Compiler is capable of out preforming MSVC.
Ive pretty much finished the BeSweet code in DVD2AVI. It works really well, very quick, no intermediate files...very slick :)
-Nic
A_Pleite
5th April 2002, 01:39
Originally posted by Nic
No its just for ripping...encoding straight from DVD has never been a good idea. :)
-Nic
Why (I´m not an expert in "encoding straight from DVD", because only my first Backup ;), which I made about one year ago, was made with flask. I know it´s not the best "program" :D, but ...) ?
trbarry
5th April 2002, 01:48
Ive pretty much finished the BeSweet code in DVD2AVI. It works really well, very quick, no intermediate files...very slick
Very slick indeed. This is getting an awful lot of attention for something declared dead only a couple weeks ago. ;)
- Tom
int 21h
5th April 2002, 03:28
The BeSweet interface works with .mp2 also right? (For SVCD people like me) When I was working on it, I was never quite clear on if that worked. (Vob->SSRC->Normalize->Toolame->MP2)
macdaddy
5th April 2002, 03:52
Ive pretty much finished the BeSweet code in DVD2AVI. It works really well, very quick, no intermediate files...very slick
Wow, nic, you are like the Energizer rabbit (keeps coding, and coding). I can't wait to give the new BeSweet features a whirl. Thanks to all of you.
ShinerSpoon
5th April 2002, 04:15
Just in case Nic is not an SVCD'er. Here is an example command line from dvd2svcd using BeSweet to create an mp2
C:\Program Files\DVD2SVCD\BeSweet\BeSweet.exe -core( -input C:\temp_avi\Extracted_audio_1.ac3 -output C:\temp_avi\Encoded_audio_1.mp2 -logfile C:\temp_avi\Encoded_audio_1.log ) -azid( -L -3db -c normal -g max ) -ota( -d -110 ) -2lame( -e -b 192 -m s )
int 21h
5th April 2002, 04:23
So I would assume that same commandline is available in the .dll that DVD2AVI is using also...
Im pretty definite it supports mp2, ill make sure you can select it inside DVD2AVI...Ill test it later today :)
@A_pleite: :) Its not high on my list...but maybe towards the end ill add it (I think there is a version of DVD2AVI with DeCSS support...ill go scout for it :)
-Nic
ps
@Shiner: Thanx, I need all the examples, hadn't used BeSweet until two days ago...Have never used 2lame in any capacity. :)
ShinerSpoon
5th April 2002, 15:27
Nic, as I am sure you know, there is a plugin for dvd2avi that allows opening the vobs from disk:
http://www.doom9.org//Soft21/Rippers/OpenDVD.zip
The only problem is it cannot handle multiangle. I hope you consider adding something like it as dvd drives are now much cheaper and I would think a large buffer would keep the wear and tear down to a minimum. I did notice what looked like some special source in the dvd2avi 1.85 source package from the Doom9 source page.
Also, dspguru was nice enough to reply to a question I had:
"principly, the mp2 output should be as easy as the mp3 output, but with one exception - it's impossible to do one-pass normalization with mp2"
DG & I have already spoken about the 2pass problem...he is working on it & I thank him a (25^3*(25^2+15))/10 for it :)
(sorry private joke)
I know about 1.85, ive looked thru the source...still don't like it. I think Ill leave it for someone else to implement. (Also nowadayz harddrives cost very little :) )
If I were to do it, I'd make DVD2AVI do the splitting/demuxing inside DVD2AVI....As I think thats the best way. :)
Cheers,
-Nic
int 21h
5th April 2002, 16:58
I would not mind seeing Vstrip or some other ripping procedure integrated into DVD2AVI (i.e. SAVE), but I agree that ripping from the actual DVD is not worth the time at this point.
I'd rather see a FairUse like interface (which I had begun work on before all this Uni homework caught up with me), to rip the vobs, generate the project, make your sound files, and write your .avs for CCE. >:)
I didn't have the ripping part done yet, but I had some other stuff done. I'll add it eventually. The biggest problem with ripping the vobs is no IFO parsing, I really like IFO parsing ;)
At present, ive put a "Rip DVD" option in the file menu...clicking this: Authenticates the disc, finds the main movie & displays all the ifo information for. You can then select PGC, audio stream you want & where you want to save the rip to...then click rip. Its basic but is enough for most people (there is also a little combo box so you can select the other titles on the DVD other than the main one)
-Nic
@Energizer rabbit
Thanks for your work in ALL, keep coding:p
@all developers
You're doing great stuff
Nice work!
:cool:
ShinerSpoon
5th April 2002, 18:45
I'd rather see a FairUse like interface (which I had begun work on before all this Uni homework caught up with me), to rip the vobs, generate the project, make your sound files, and write your .avs for CCE. >
To state the obvious (not being a smartass), isn't that called dvd2svcd? If you want to finish your svcd by hand you can check the "edit as part of video encoding" in the frameserver tab of dvd2svcd which stops the process and brings up an edit window with the avs. At that stage the vobs will be ripped, the best possible audio, via besweet, is produced, the d2v is prepared, and the avs is ready to be edited and saved. Just kill the program after that (if you want to hand finish) and you should be good to go with all the drudge work done for you.
I hope I can get away with saying, IMHO, I do think any program like this project can suffer from feature creep if developers are not on their guard. Sure, I can see dvd2avi doing most of the divx process but not the svcd. IMO, if you guys try to make dvd2avi too simple (edit: dumbed down do it all) you will end up making it too complicated. Perhaps it would not be a good idea to change the simple interface we all know and love too much?
Again, I hope I have not offended anybody. That is not my intention.
I agree on not changing the interface, but I can see DVD2AVI creating the MP2 Audio & the AVS Script & D2V for SVCD. (as it does all the above already in my version)
(I assume thats what you need for SVCD conversion...unfortunatly don't know anything about it :( )
-Nic
ShinerSpoon
5th April 2002, 20:58
but I can see DVD2AVI creating the MP2 Audio & the AVS Script & D2V for SVCD.
Yes, that would work well for hand creation of a simple svcd. People that wanted more like menus, subs, etc., would have the basics of what they need (mp2,d2v,avs)to use additional tools of their choice.
Most would agree that project design is always about the target audience anyway. Those people that are NOT interested in hand creation but that NEEDED complex svcd structures would want to use dvd2svcd anyway. It does this well, very well actually, and automates the whole process.
The point being that they would not be the target audience of this project. People that like to manually do the process and tweak (like using RobShots method) are the target as I see it. Personally, I would like to have both methods available to me. They have different purposes and would compliment each other depending on the mission.
int 21h
6th April 2002, 00:09
I detest the sendkeys and other 'hacks' of DVD2SVCD. I'm only saying I would enjoy a version of DVD2AVI that I feed vob files, and it outputs an mp2 (or two), a d2v, and an avs. I don't want it doing anything else. I don't need it to open CCE, run CCE, calculate bitrate or anything.
Of course, if someone has issues with this, I'll just make a variant and keep it to myself and the other blackhats I associate with in the other part of the 'scene' :sly:
I'm not looking for ways to 'simplify' ripping, I'm looking for ways to batch rip, where I can rip multiple DVDs quicker. Just the fact that DVD2AVI will be generating my mp2 files will save me at least 10 or so minutes of just commandline typing.
ShinerSpoon
6th April 2002, 01:29
I detest the sendkeys and other 'hacks' of DVD2SVCD.
OT, but man, you must have not seen it for a long, long time. You can actually switch users now in XP and allow D2V to function independently. The next version pending has a batchmode limited only by the size of your HD. It's a strong program now, quite different from its roots.
I'm only saying I would enjoy a version of DVD2AVI that I feed vob files, and it outputs an mp2 (or two), a d2v, and an avs.
We are saying the same thing. Sorry, I must have misunderstood your comments above when you mentioned a FU type interface. Now I think I understand that you were talking about another project, not a modification of Dvd2avi.
int 21h
6th April 2002, 05:42
I just meant the Wizard like interface.
In any event, its not important.
ShinerSpoon
6th April 2002, 16:41
Would there be a possibility of allowing the audio tracks to be previewed? That would sure come in handy.
vlad59
6th April 2002, 21:03
I'm sorry, I'm a little off the topic.
When I compile the CVS of Save-oe I get strange warning about ddraw.h. I have the latest Windows SDK with only a pre-release of DirectX 8.1 SDK. I'm currently downloading another DirectX SDK to check this out (It's so slow, I think it will be finished tomorrow).
Do I really need the latest DirectX SDK ??
Is there any other trick I must know ??
A last hint, I compiled Mpeg2dec.dll without any problem.
Thanks in advance
trbarry
6th April 2002, 22:15
Offhand, I don't remember any DirectX specific warnings. I do have it in my libraries but that is because it was already there from other projects.
For some reason VS6 seems to remember the same library for all workspaces. I don't know how to override this but wish I did.
- Tom
vlad59
6th April 2002, 23:56
I found the problem, I thought it was a Directdraw problem but it is a CPU detection problem.
At home, VS6 is installed on an old K6-400 (With MMX, 3DNow and no SSE) : when I load a vob file it crash.
I tested the same exe on my laptop (P3-750 with SSE) and no crash at all.
I'll check this precisely later (I have to sleep). In fact I should be the last one to have an oldy CPU like that ;)
trbarry
7th April 2002, 05:01
I think there is a quirk in DVD2AVI about remembering what type of processor to use. If the DVD2AVI.ini file says you want SSE IDCT process then it will try to use that even if you are now on a new machine that does not support it. The fix is to delete the DVD2AVI.ini file.
- Tom
vlad59
7th April 2002, 09:43
In fact IDCT_CONST_PREFETCH is called in getpic.c without checking IDCT_Flag. IDCT_CONST_PREFETCH use the prefetchnta instruction so the program don't work on my K6-400 (it has no SSE and not extended 3Dnow).
I will have to test the program on my P3-750 ;).
trbarry
8th April 2002, 04:16
vlad -
Yep, that's an obvious bug. I meant to fix that today and also check in mpeg2dec but other things came up. I'll try to fix them tomorrow if you haven't already. It wasn't meant to restrict either program to P3 or higher.
- Tom
vlad59
8th April 2002, 09:40
I'm sorry but I don't think I'll be able to correct the problem myself. I'm mainly a Java programmer, I can read and eventually fix C or C++ code but I'm a real newbie in MMX, SSE, 3DNow, ...
I just found (with google help) that prefetchnta was not available in K6 CPU.
I'm trying to learn MMX and SSE but I begin ........
Sorry again :(
Edit : I fact prefetch is not so hard to understand, I think I can try to fix it as soon as I come home (in about 8 hours)
trbarry
8th April 2002, 19:17
vlad59 -
I did a bit of testing and that particular prefetch call did not help performance even on P4's, so I took it out of DVD2AVI & MPEG2DEC. Also it should be okay now if you load someone else's dvd2avi.ini file without trying to use sse2 code on a P2 or K6-II.
The source is in Sourceforge. You can find TEST versions of both (with source) at:
www.trbarry.com/DVD2AVIT3.zip and
www.trbarry.com/MPEG2DEC2.zip
- Tom
vlad59
8th April 2002, 22:42
OK, no more crash. Thanks.
trbarry
10th April 2002, 04:23
Oops. Someone just contacted me and let me know that I'd left the file DVD2AVI2.exe out of the zip above. It should be there now.
It looks like I was over zealous in cleaning out intermediate files to make the zip smaller.
- Tom
DrKnowLittle
10th April 2002, 10:27
Hello ,
I just tested the build that TBarry posted but it crashes on my compu.
After I load a mpeg2 file I get a msg "You video card cannot handle YUV display. Conversion will work, but you will not get any display in YUV mode" and when I pres ok it crashes.
Im running W2K on a P3 550 with 256MB ram.
/DrKnowlittle
trbarry
10th April 2002, 14:12
DrKnowLittle -
I'm typing this on a P3 and yes indeed it does crash. ;)
There are two problems here. I've seen the YUV video message off and on since 1.82. The solution seems to be to switch to RGB mode if you want to see your video for crop/resize etc. and then switch back before saving it. The whole thing may have something to do with an image bigger than your overlay can handle, I'm not sure but not currently working on it.
The other problem I thought I'd fixed, but apparently not completely. The easy solution is to delete the DVD2AVI.ini file you probably found in the downloaded zip, which is from my P4. It fixed it for me.
I'll put out a fix for that one, but the delete should solve it for now.
- Tom
DrKnowLittle
10th April 2002, 14:17
Tbarry thanks , that did solve the problem :)
Kyo
10th April 2002, 17:35
I have tested your version(not sure if it is the same you post pages up?)
I tested with dvds and no problem, the resize not work, the crop ...
not remember(i will post later this), but all the other ok...
thanks guys for your work!
:D
trbarry
10th April 2002, 19:11
Kyo -
To make DVD2AVI cropping work with frameserving to Avisynth you will also need the mpeg2dec2.dll that I listed above.
But maybe folks should hold off on my test version now. There is a new Doom9 sanctioned DVD2AVI 1.86 posted today by someone (Nic?). That may be a tested production release that has all the same features. I haven't tried it yet but there is no real purpose in dualing DVD2AVI's and I don't really want to support my test version if another complete version is already available.
- Tom
Nic
10th April 2002, 21:29
No, keep up the great work Tom!
Gloval's version is nice, but I think mine is more what people want, but is far from polished...It does work though (intergrated MP3 using BeSweet...problem with gloval's is its still using AC3Dec...not good)
I might release mine earlier just to "compete", My twopass code is pretty good & because im using AviSynth inside DVD2AVI, I can use all the filters :) (Decomb & temporal smoother are the only ones added as yet)
Cheers,
-Nic
trbarry
10th April 2002, 22:58
Errrr, ummmmmm, Uh, everybody disregard my previous comment.
Nic -
I thought that one WAS yours, so if all the wonderful things you have promised are true then it would have pretty much subsumed my efforts here. ;)
Will yours be able to write ac3 into Xivd by any chance? Or at least some sort of 5.1 sound of some sort? (I'm still allergic to audio programming and quite helpless there)
- Tom
DSPguru
10th April 2002, 23:15
Hi Tom,
it is possible to encode to 5.1 ogg vorbis using BeSweet(.dll), but until the vorbis devs tweak their codec to 5.1 i think you should stick to the original ac3 stream.
the biggest thing about BeSweet(.dll), is the fact that it does one-pass normalizaion for mp3 & (just added to exe release) ogg.
this means that the ac3 stream is being demuxed from the vob only once, and there's no need for h.d. temporary
space, since it doesn't create any intermediate file.
btw, to find more about BeSweet capabilities, i advise that you download the latest gui and find all available features.
Dg,
trbarry
11th April 2002, 00:45
Dg -
Actually I don't mind sticking to ac3 at all but then I can't automatically have DVD2AVI put it into Xvid. And there is something peculiar about my ATSC HDTV captures that seems to often make the audio sync wrong if I add it later using Nandub or Vdub_ac3.
Just using the DVD2AVI Delay parm written into the name doesn't seem to get it sometimes.
Someday I will absolutely force myself to learn how audio works. ;)
- Tom
ShinerSpoon
11th April 2002, 01:58
I think the Nic, Tom, int 21h collaboration will be much more holistic for both Divx'ers and SVCD'ers and very much look forward to seeing it when the time is right. Thanks to all of you for your work on our behalf.
maven
11th April 2002, 09:59
trbarry:
if you want to do audio better than anyone else (and probably correct for that matter), you'll have to compare the timestamps in the video- and audio streams (PTS) and align them continuously...
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.