PDA

View Full Version : DVD2AVI Sourceforge Project


Pages : [1] 2

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?

bb
19th March 2002, 07:30
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*TRA