Log in

View Full Version : XCD: automatic media detection and licensing


Pages : 1 2 [3] 4 5 6

nah
14th May 2002, 22:46
Hi,

If some of you are interested, I've update my GUI for Mode2CDMaker 1.2pre2.
http://membres.lycos.fr/zorgzorg
Hope you could read French . :D

DeXT
16th May 2002, 20:32
Just a quick note, Form1 is finally working. Still no releases since it's very limited at this stage, but definitely I have something to release before I go. I'll try to improve it in the next days, so expect a new release this weekend.

Apart from this, the next thing I plan to do is to add sub-directories support. I don't have a clear idea on how to implement this on the command line, perhaps something like this?

mode2cdmaker movie.avi -d stuff -f powerdivx.exe -d pics -f sarah.jpg nicole.jpg -l

This is supposed to generate the following directory structure:

movie.dat (form2)
stuff/
+powerdivx.exe
pics/
+sarah.jpg
+nicole.jpg

Tell me your suggestions about this subject, if any.

@Nah: BTW I added your nice page to my Links section.

The Belgain
16th May 2002, 22:14
I've just burnt my first movie using this method (a 770 Meg avi onto an 80 Min CD) and it's worked nicely. Really nice program.

What do people have to report about CDs becoming unreadable easily from scratches etc...?

Are certain containers (eg mp4) more tolerant to this? Does the codec used have any effect on error tolerance?

kxy
16th May 2002, 22:33
Would the multiple files be supported in the main directory?
In another word,

mode2cdmaker -f sarah.jpg nicole.jpg movie.avi -d stuff -f powerdivx.exe -l

This is supposed to generate the following directory structure:

movie.dat (form2)
sarah.jpg
nicole.jpg
stuff/
+powerdivx.exe

DeXT
17th May 2002, 01:18
@kxy: Yes of course. You can mix Form1 and Form2 files the way you prefer. You will even be able to put Form2 files in subdirectories.

@The Belgain: I'm glad it worked for you. It should be pretty tolerant, the same as (S)VCDs, but of course the format used is very important in the error concealment (i.e. when you just can't read that sector, an AVI will probably freeze).

Just to note, the new tool will make sightly different CDs (it uses a new XA header which is more compatible with some DVDs), and the new filter will be able to read both CD types (and any possible future change here too).

jurij
17th May 2002, 07:34
how about using an external input file like this:

mode2cdmaker -load files.lst

and the file.lst may look like this:

\pippo.dat
\pluto.dat
\DONALD_DUCK\mickey.jpg
\UNCLE_TOM\i_want_you.mp3

.... and so on?
So it could be bvery easy to use a front end with it +
Command lines can't be longer than something like 256 characters i think.

raistlin2k
17th May 2002, 07:49
Great to see this Form1 working now!

Just three questions:
1. Can I use this for putting my graphedit-files onto the image?
2. Is it possible to place the form2 file into a subdir? Would be necessary for microDVD since I need the movie-file in a video_TS-folder.
3. I made a few test with graphedit-files using the "RIFF/CDXA Source"-DSF but after saving the graphedit-file and reloading it, all boxes are shown separately, no arrows between the inpput & output pins, so it doesn't work for saving. BUT microDVDPlayer needs this files! Any suggestions?

avih
17th May 2002, 09:22
as we stressed few times before: it's still experimental and you should not try to put files for real archive. only testing is supported.

just wait for XCD, and then there will be error correction, and you'll be able to safely store your files.

regarding microdvd: i don't know how does it read the files, but there should be no problem storing form1 files. BUT if microdvd doesn't use dshow mechanism for loading the file then (at least now) it won't be playable with microdvd, since the dshow filter is the one that will handle the file protections and stripping. hence: no dshow reading -> no file protection and no 800M files (since the dshow filter also handles the stripping of the form2 File)

cheers
avi.

ps. i'm thinking of deviding the XCD spec to 2 parts: file level and cd level. file level will be a loose spec, that will only handle the reading/stripping/protections of a single media stream, while cd level will be the complete (hardcoded) cd structure, with all the menus, playlists, etc (and prob both will be handled by the same filter). so for using just standard 800M files in an arbitrary manner (i.e. for microdvd, while assumming microdvd uses dshow to read the files) you'll use the 'file level' xcd. and for complete, standard xcd (the one that we want to be read by stand alone players) you'll have to use cd level xcd. i think we can start with file level for now, which makes the spec finalization easier if we don't take the cd structure into account.

raistlin2k
17th May 2002, 13:20
Well, since microDVD is based on Windows Media Player 6.4 (needs to be installed!) it uses DShow for playing the movies. But for splitting a file with several audiostreams, so that only one audio-stream gets decoded, microDVD needs helpby graphedit. By using graphedit I define the filters that should be used to decode the file, select only 1 audiostream from the file-splitter (e.g. avi-splitter) and save it to a graphedit-file. microDVD Player then loads this graphedit-files to play the movie with just one language.

So i have to create a graphedit file for each audio-stream in the container-file. Since there is a microDVD-standard for file-naming a once created set of graphedit-files can be used for all movies using the same DShow-decoders.

Graphedit works with the "RIFF/CDXA Source"-Filter as well, movie is playable in graphedit. But after saving & reloading the arrows are away, manual connection of the output-pin of CDXA with a splitter doesn't work anymore, WHY? This must be a bug in your filter, all other sources work well, like it should be with graphedit, a tool by microsoft, the author of DirectX ;)

Any suggestion?
Raist
P.S. I know well that your system is just in development, I'm not using it yet for archiving my movies, I'm just testing it a little bit. Hope I can help you with my tests :)

Belgabor
17th May 2002, 13:39
@DeXT: for adding multiple files I'd support jurij's idea of an input list file, but I think it would be a good idea to extend it a bit like this:

<source>,<dest>,(1|2)

with <source> being the path/filename of the input file, <dest> the path/filename of the file on the cd and (1|2) whether it should be written form1 or form2.

Regards
Belgabor

avih
17th May 2002, 14:51
@raistlin2k:
ok, i need more info about where are these graphedit files are stored, and with the 'final' product of yours, what does play, and what doesn't.

i'll try to give few hints anyway:

1. if you put the files (graphedit) on the cd as form 2 files, then nothing can read them correctly, except for the filter (or a special os driver with similar functionality to the filter, but none exists afaik), but since microdvd doesn't use the filter to read a graphedit file, it's not read correctly.

possible solutions:

a. try to put the graphedit files on the hd, and point microdvd to these files. let me know what are the results

b.wait for form1 files to work as well, and store these files as form1 when u put them on the cd.

c. make an image of the vodeo file ONLY (and keep the graphedit files on the hd without making an image with them). burn (or use daemon to mount). copy the video file from the cd to the hd. put the graphedit file/s (unmodified, as saved from graphedit), in the same directory structure that microdvd expects. try to play. lmk the result.


2. regarding the pin configuration. the filter tries to select the pins media type automatically, by the content of the file it was opened for. so if microdvd tries to build a graph with the filter without supplying a file, a graph won't be built. that could be a reason. but i suggest you try solutions a,b and c first. if they don't work, i can supply you with a filter compiled with a fixed media type, to make further tests.

so, do test these options and let me know how did it go ;)

cheers
avi

raistlin2k
18th May 2002, 08:44
Well, thanks for the hints, but I've already done this tests, since it was clear to me that the graphedit-files are not readable for microDVD if they are in form2.

I made the tests again last night and grabbed two pictures from graphedit.

"Working" shows Graphedit after clicking on "Render File" and select the DAT-File from image mounted on Daemon;)

for microDVD Player I have to save the graph build by graphedit into a file, microDVD Player cannot build a stream with only one of the available audio-streams!

So I saved it to a separate file and then I reload it with graphedit, as usual, to check if it's working correctly. (microDVD Player has no good error-information, in graphedit I can see what's going wrong) Well, have a look at it for your own "not working":(

I tried to re-connect the pins in the broken "not working" - window, but didn't work!

Any idea? Could you send me a filter fixed to ogm?
Raist

P.S. I've just forgotten the microDVD-specs:
Here I use the dat-extension for testing, for microDVD it should be "vts_01_1.vob" in a "video_ts" folder, together with the graphedit-files, renamed also to vts_01_2.vob, vts_01_3.vob etc.
microDVD doesn't care about file extensions, so it's just for cool looking!
In the root-dir there is a mdvd.ini that tells player all infos about the movie (the related files, languages, menu data)

P.P.S. microDVD supports aleady menus, chapters,all DVD-features. There are also special tools to create a 1:1-copy of a original DVD-menu, I did this with several movies, e.g. Star Wars Episode 1, a really cool menu:cool:
What do you think of using microDVD Player for the CD-level of XCD specs?

P.P.S. I haven't posted an attachment yet in this forum, I see it's up in edit attachment, how do I make it available for you:o

avih
18th May 2002, 10:41
microdvd is closed source, hasn't been updated for quite a long time (afaik), and might go commercial.

so imho, microdvd is out of the question. supporting microdvd is not our 1st priority, since we still have to work on xcd itself, before trying to soppurt specific players.

sorry, as i don't know much about microdvd (i used it few times only). maybe you can help buy studying exactly how it works, and find out WHY it doesn't work with the mode2 filter. but i'm affraid i don't have the resources to help u more with that issue atm. we might look into it later on though, when xcd itself has made some advance.

cheers
avi.

ps, i don't mind trying to look at this issue if someone gives me more detailed info. but i'm not gonna test it myself atm. regarding the attachments, you'll have to wait till a moderator approves them, or just supply a link to an external page, that contains your images.

pps
i missed your request to ogm fixed filter. send me your email on this thread or on a PM, and i'll send it to u.

raistlin2k
18th May 2002, 11:39
I'm also very unhappy that microDVD had no updates for a long time, and that the last release 1.3 is not available for free anymore. So I still use version 1.2

I understand that you don't want to support such a player. The good thing is that it has perfect working menus, PowerDivX is not so good on this issue. Since I know very good how it works, wouldn't it be a idea to base your menu system on this one? because there are very good tools out there to translate a DVD into a microDVD menu. If your filter were able to use such a menu, it wouldn't be necessary to support microDVD itself, language,subtitles and chapters are choosable via OGG DSF.

Another question: How far is the XCD muxer from (beta)release? Will you support OGM for error correction issues or will it be better to use MCF as container? Which subtitles will XCD support by MCF, like OGM (OCR-rippped) or like VOBSUB (pics)? I prefer OCR-ripped subtitles, being very compact.

Raist

DeXT
18th May 2002, 12:10
You can try the test4 release which included an OGM-fixed filter. I don't have a clear idea about this issue but I think it may be related to the Media Type issue since our filter needs to load the file in order to recognize the Media Type. If that's the cause it probably will work with the OGM-fixed version. But neither avih nor me have got enough DS knowledge to look deeper at this issue.

raistlin2k
18th May 2002, 14:23
Test with filter "test4" failed, too.
So I will send microDVD-Player into retirement.

Something about mcf:
Will it work with vbr-mp3?
Just tested ogm with such audio, didn't work, audio-stream can't be decoded after muxing.

Any betas for mcf muxer yet?
Raist

Koepi
18th May 2002, 15:35
Better use OGG audio in an ogm.
Superior quality at those bitrates.

rui
20th May 2002, 09:51
To nah:

I have, in my home, WinXP, english language edition.
I have tried your GUI, but i always get an error saying that it can't find a language dll and i need VB6FR.dll
I believe that this is the error, sorry for not being sure, but i didn't write it down :( (My mistake, sorry)

In yout txt it says that one needs VB6 dll's, and after a search in google, i downloaded a VB6 SP5 from microsoft, but it didn't helped, i still got the error. Probably it wasn't the update i need.
But here in my work, where i have Win95B works fine.(?)


This error was only in the GUI, i can't speak for Mode2 CD Maker. I will try it later, using command line.

EDIt: Just went to your site and saw that you have a Package.zip and an update file. Probably all that i need. Sorry for not looking first and post later :(

Koepi
20th May 2002, 10:37
rui,

you might want to try it here:

http://www.microsoft.com/downloads/release.asp?releaseid=28337&PopList=4

You could get localized versions of the runtime libraries as well there.

Maybe you just got an "upgrade" package, so this is the full VB6 SP5 runtime - but read on on that page yourself ;)

I couldn't check this yet since I'm a little busy, sorry.

Regards,
Koepi

rui
20th May 2002, 10:52
Many thanks, Koepi :)

Downloading right now. I don't know if this is the same file i got from microsoft that i mention in my post, but will try later in home, where i get the error.
But probably, by using the package that Nah has in his site will solve the problem also.

But maybe doom9 should mention this in the guide, because more could have the same problem has i had.
Agree, this is all experimental stuff, and Nah says in his txt that one needs the VB6 dll's, but it wouldn't hurt to mention this in the guide also. As always, this is only my humble opinion.

DeXT
20th May 2002, 14:33
Well I finally released the new mode2cdmaker 1.2 (final) with Form1 files support. I was waiting for avih to release the new filter but since seems he has had some last minute problems I've chosen to release a modified test5 filter which is able to read CDs made with this version. So I'd recommend you get both from my homepage.

This new filter is needed since mode2cdmaker now uses a different XA subheader which has proven to be more compatible with existing CD/DVD drives, thanks to the tests made by MaTTeR.

You should note that there is no subdirectories support yet, this feature was scheduled for next release.

You can add any Form1 file through the use of a new option, "-f", just use it like the old -m option. You can put any kind of file such as readmes, executables, drivers, photos or the like. An example:

mode2cdmaker -l -m movie.avi -f player.exe readme.txt autorun.inf

Remember that if you don't add the "-l" option all file names will be trimmed to 8+3 chars, to maintain compatibility with ISO-9660 Level 1, and the movie files will be saved with VCD-like filenames.

Oh and the tool now shows a total estimated CD size so you can get an idea on which type of media you'll need in order to burn it.

Get both (mode2cdmaker 1.2 and riff-cdxa-filter test5b) here:

http://webs.ono.com/de_xt/

Hope you like it.

jurij
20th May 2002, 15:19
very good DEXT, very good....
Do you know if the new 5b filter is compatible with CDs burned before?

DeXT
20th May 2002, 15:24
Yes of course. It reads all CDs made with previous releases as well as the new ones. You can install it safely.

jurij
20th May 2002, 18:28
in what way xcd may not be backwards compatible in the future developement?

Koepi
20th May 2002, 19:10
I've finished a first version of a "XCD Backup Creator" which curretnly just works for *.ogm (since I know which data has to be saved there - it's easy, just the first 64kb ;) ).

If I now find what to save from an AVI, MP3 and an MCF we could start the real thing :)

After I finished that support I could strip that down to a command line tool.

dext, I think we need directories very soon - if we have "-m myvideo.ogm -d secure -f back0000.xcd -d codec -f filter.exe" this would be something like the basic XCD! :)

But we have to reewrite our specs as well I think as we're progressing in the implementation.

Well, just some infos about my progress here :)

Best regards,
Koepi

DeXT
20th May 2002, 19:56
@jurij: well my idea is, that the XCD filter should be backwards compatible, i.e. it should be able to read non-XCD content as well (i.e. pure Mode2 content). So you should be able to read a movie recorded with my tool now, at the expense of lacking file protection of course.

So in fact it's up to the user if he wants to risk not having file protection. But anyways if a unprotected disc starts getting reading problems you should be able to extract the movie and burn in a real XCD with file protection, too.

@Koepi: this is great news! I'm willing to see that piece of software running.

Yes I already know subdirectories support is a MUST for XCD but it's also the only thing pending to make my tool fully usable from the XCD side at least. The problem is, I'm leaving in 2 days and won't be back until day 31 so I'm afraid I won't be able to have this finished before I leave.

About the XCD file layout, anyways I think it should be desirable that the filter would be able to read backups from the current directory as well, so you can load movies from the HD before burning to a XCD. This way you could also start using it without the need for subdirs.

I would like not having to put movie files in a separate directory since in most cases a CD will contain a single movie so a single file in the root dir would be desirable (with backups in a separate dir). So in your example (adding -e XCD, and assuming XCH for header/backups):

MOVIE001.XCD (full movie if form2)
\SECURE\HEAD0001.XCH
\CODEC\FILTER.EXE

So the filter would search for the *.XCH file in the current directory and if not found would try in SECURE, HEADER or whatever it's called. If finally it's not found it should assume it's an "old", unprotected file, and should play as it is. So we maintain the backward compatibility.

It's just an idea. I guess we are starting a XCD specs discussion now :)

Koepi
20th May 2002, 20:16
DeXT,

this sounds all very reasonable.

I think avih wants XCD to hold up to 10.000mp3s in a flat dir (MPEGAV dir on VCD), which is a little problematic imho. A root dir should only contain up to 512 entries if i remember correctly.

I left the with the HEADERS stuff since we went over to store directly _chunks_ from the stream, regardless if they contain headers or data.

So it's a backup of a small region in the file.

that's where the name

\SECURE\BACK0000.XCD

came from.

I have no problem with the media files residing in the root directory.
Avih wants some flags for his filter to see if a media file is stored m2f1 or m2f2...
Dunno how to solve that, I would think it's not necessary to have a XCD with m2f1 files on it - it can be easily done with other software then - I see no benefit of storing data this way.

But let's see how things evolve :)

Best regards,
Koepi

jurij
20th May 2002, 21:04
Does anyone have idea about how can I make a copy of a cd burned from a .bin created by "Mode2 CD Maker"?
Both nero and cdrwin (which i used to burn that cd) seem not to recognize the sorce cd.

Koepi
20th May 2002, 21:20
Ok pals,

created and (over)burned my first XCD!

Containing:
back0000.xcd
mymoviename.dat
filters.zip

we really just need directories now, make the filter read the backXXXX.xcd files and we're done ;)

My DVD rom usually doesn't recognise many discs. But the XCD got recognised on first try.

The image was taking up 80min21secs, the CDR should end at 79:55 according to nero - but it worked like charme, no error message or whatsoever :)

I'm amazed.

Let's hope our DSF will stay backward compatible ;)

rui
20th May 2002, 22:14
Ok, i too have made 2 successful XCD burns :)
Both were avi’s with 796 MB each, and were burned in 700MB cd's. But, like the compatibility txt said, my Samsung 616T DVD rom (16x) couldn’t read them :(
But do not fear: my HP 9100 burner didn’t had any problems with them :D

But now I am messing with my DVD firmwares. I found out this site (http://wald.heim.at/sherwood/530742/dvd/samsung/index.html), which has loads of firmware’s for my model (and others)
I will try if I can get any to work so I can read the DAT in the DVD.

Ah, the life with a 798MB burning method is wonderful :D :D

DeXT
20th May 2002, 22:44
@jurij: This is strange, I'll test it but perhaps this is related to the known reading problem with some drives.

@Koepi: Man, you probably are the first person in the world to make a "real" XCD! This is sweet. Now we just need something to read it :) Well in fact avih added some code related to XCD in the new filter but not a full implementation yet. It's just a base but looks promising :)

@rui: This reading issue just don't let me sleep quietly. I wonder what's the cause, and why it only fails on some drives. I have a feeling that maybe CDR-Win is not burning the CD properly, can anyone confirm this with a "real" VCD burned with CDR-Win? If that's the cause, perhaps adding Nero image format output could fix the issue once for all. Damn this was in my "TODO" list but I forgot it almost completely. Now I guess I should start working on this, too. I already wrote some functions to output a NRG 5.0 image when I was working on cdi2nero, so it shouldn't be too difficult to update them to make a 5.5 image.

Koepi
20th May 2002, 23:15
regarding CDR-WIN i have to say that it ALWAYS made trouble.

I myself forget about this once a year and 1 week ago trashed 1 CDR with this f***ing wannabe-program.

Head over to http://www.fireburner.com/ (I hope the url is still correct) and burn your image with that proggi - it's absolutely reliable, even if it doesn't detect all features of your drive. It still produce "bomb-safe" CDs.

and hmmmmmmmmmmmmm
Am I really the person with the first XCD?

I sent you the proggi so you could have been faster!

;)

Greetings,
Koepi

nah
20th May 2002, 23:29
Hello,

too many post to read since my last one (some holidays ! :) )
I will update my GUI to take in account the last release from DeXT.
And I will soon be able to really burn my 800Mb videos !
Good job to all of you !

A+

avih
21st May 2002, 00:21
hehe, same here... i was reading this thread this morning, and now, WOW ;)

anyway, as dext said, the filter was rewritten, and now there's an XCD_Media_Reader class to handle m2f2 files. it's completely portable and free of win32 or m$ api (i.e. uses only fopen, fseek, etc, and only 'normal' types such as int and long. it already reads svcd and vcd as well, and is usable with the free fraunhofer freedvd mpeg2 codecs. so for one thing, it's an end of the commercial apps only for svcd playback. this new class also offers the infrastructure for the backup file.

regarding backward compatibility: it will be there (at least i'll make every effort to keep it, it's 99% it's gonna be compatible with 'old' files.

regarding directory structure. as i noted before, the xcd spec will split for 'file level xcd' and 'cd level xcd'. this separation will allow us to concentrate on the file-level backup protection (header structure), and make it work, before we continue to the cd-level, which will have the hardcoded directory structure and the other features as playlist and menus. the filter will 1st try to find a backup header from the current directory, and then from the 'hardcoded' directory ('SECURE' sounds good enough to me).

regarding the backup structure: koepi and myself have been discussing it quite a lot in the lasrt few days, and we're getting somewhere :)

@koepi: the m2f1 is for 'unprotectable' files/formats (i.e. if we store a jpg, as part of an XCD cd (i.e. as a bg for a menu), we should protect the whole file, and since it doesn't make sense to put the whole jpg both as m2f2 file AND in the backup header, it seems logical to store it as mode file only).

as for the release date of the new filter. dext has changed the registry system a bit, to overwrite m$'s vcd reader filter (so no more conflicts with that filter, a problem which some ppl had, and used dext's patch to fix that). we're working tightly on that (the filter is fine, it's just the install script that giving us a headache on my pc, but working fine for dext). we're gonna get there ;)

great to see all this work, i really hope xcd will be as cool as it now seems it can be ;) .....

cheers
avi.

avih
21st May 2002, 03:08
regarding backward compatibility again: the xcd backup creator may NOT be compatible with future versions...

i suggest not to use the backup creator untill we officially announcd the first spec (should be real soon).

cheers
avi.

Koepi
21st May 2002, 03:13
I suggest I finally do what I planned yetserday since I only get "stones in my way".

Kyo
21st May 2002, 07:18
Test: Video.Ogm 750Meg
CD: 700/80min RW Premium
Writer: LG: GCE-8240B.
Lect: LG GCE-8240B.
Lect: HP 4X mmm not remember the ref#
Burner: Nero 5580

All work like a charm on these, the filters need a restart to rec the file, but all work ok.
Later I will post with a Lg dvd 16x

You guys make excellent works, go on! :)

Cheers

rui
21st May 2002, 09:05
@DeXT: My burn was made using Nero 5.5, i had forgoten to mention that, sorry.
You mention to add Nero image format output. If i understood you post correctly, mode2cdmaker currently uses CDR-win image output format?

That means that the problem of my Samsung DVD Rom not reading the created xcd wasn't of my burner software, correct? I will try fireburner, like Koepi recomends (i have learned that koepi's advices are always good ones ;), but my hopes aren't high.

@Koepi: the link is correct. Thanks

avih
21st May 2002, 11:52
Hi again.

attached is the latest RIFF/XDCA filter (test6).

Changelog:
----------
21-MAY-2002: test6:
- VCD and SVCD playback support added
- filter rewrite (for portability and future support for error protection)
- improved media detection
- file name changed from asyncflt.ax to xcdsrc.ax
- registry system modified to override ms VIDEO CD Source
(which doesn't read s/vcd correctly, and may introduce conflicts.
the uninstall script put back the original registry values)

SVCD playback may be a bit skippy since high bitrate is involved, and we didin't add buffering yet.

the filter DOESN'T support (=use) the backup files now. but the next version prob will.

this is a binary only release. the sources will be included again with the next release.

any feedback is welcome (especially regarding vcd/svcd).

enjoy
avi

ChristianHJW
21st May 2002, 14:04
... its really incredible what big steps forward you guys have been doing recently ;) !!

Koepi
21st May 2002, 14:52
I sent a "fixed" version of the XCD backup creator around to avih and dext which goes conform with what avih demands to be changed (changing the version-indicator byte to a plaintext info).
I coded it very generic now and thus it should be easy to check in other changes, the basic construct is there.

Let's see what happens.

Koepi
21st May 2002, 16:49
My setup:

win2k sp2
(development system, but shouldn't matter here)
256mb pc-133
LiteOn DVD LTD 122

With the filter installed my test SVCD plays back fine/normally, only seeking times are a little reduced.

Maybe you have DMA disabled in your setup avi?

DeXT
21st May 2002, 17:05
Well in fact it's not Avih but me the one having problems with SVCD...

This is an old K6-2 450 with a shitty 8 MB Banshee card, and I'm reading with my 24x Acer burner. This computer isn't powerful enough to play SVCD/MPEG-2 in real time (even DivX), but I just noticed that with Elecard splitter (which does support direct SVCD reading) both the playback and the CD reading is smoother (not fully smooth of course), but with our filter and the default MPEG-2 splitter it's sightly more skippy. I think this difference is due to the lack of buffering, since the M$ file reader probably does some basic buffering, which we lack (but will be added soon).

Anyways any "modern" computer should be able to playback this with no problems, perhaps only a small increment in CPU usage, when compared with Elecard. But Elecard is shareware and this is 100% free :)

(any tests from anyone would be of valuable help, too)

Koepi
21st May 2002, 17:11
Never call the banshee shitty!
I loved my old 16MB banshee, it was amazing in it's time!

But you're right as usual, with a little buffering (maybe reading ahead ~1mb?) it should work way smoother.

Shouldn't be too hard to implement, a simple malloc() or buffer=new char[1024000000] should do the trick ;)

Regards,
Koepi

jurij
21st May 2002, 18:48
@koepi:
Hi man, I don't understan what "xcd backup creator" is.
is it a program? is it released?

Koepi
21st May 2002, 18:51
Hi,

yupp, XCD backup creator is a program that creates the "security files" for those mediafiles we're going to burn in mode2.

Tonight we'll finish the spec of the file-format, some things are a little unclear now, but tomorrow there will be a release hopefully (I'm confident that we fix the structure tonight so the tool could be available a few minutes later).

Regards,
Koepi

avig70
22nd May 2002, 08:58
@koepi

It seems to me that the CD-ROM reading takes allot of time from the player application and that is the part that should be the most optimized right after decoding the movie and copying of the video data to the display adaptor which takes the majoraty of CPU time.

After reading a little on the subject, the thing that takes the longest time is the searching for tracks on the CD-ROM and actually reading the compleate track is a fixed time and can't be optimized through software in a level as high as we're dealing with, so to make the filter as fast as possible the buffer should have the multiples of track size or multiples of the biggest track on the CD (I'm just not shure how many sectors are in a track and if it's a constant number or not) or may be a little more then that so it could be filled just before it runs out of data.

It should also use unbuffered read functions since they are faster and we impliment the buffer our selfs.

I couldn't learn more on the subject because I didn't find articles that explain optimized reading algorithms from CD-ROM that also contain source code for me to look at.

Any help is wellcome.

avi

avih
22nd May 2002, 10:53
avi, i thout of makeing it multithreaded, suth that the buffer filling is asynchronous. so one thread read aheah and fills the buffer, while the other thread get data from the buffer uppon user demmand.

i'm not using aspi atm to read the data, but simple file os access (i.e. fopen, fread, fseek etc). so atm i don't have low level control over the cd.

i will add bufferring a bit later, as we're now making progress on the spec, and first i'll implement the backup functionality in the filter.

first correctness, and only then optimizations.

cheers
avi.

Koepi
22nd May 2002, 11:21
Agrred.

;)

Btw., I think we can't make the buffer as big as the longest track - who has > 800MB of memory?
The average standard setup is still dealing with 128 or 256 MB of RAM.
So a buffer of 1MB sounds perfectly reasonable to me - if we even optimize it (like: buffer down to 15%, fill up at least to 85%,... need an synchronous thread for this ;) )we should be fine with 512kb or less.

If we want it to work on stand alones later on, we have to take low memory conditions into consideration.

Regards,
Koepi

avig70
22nd May 2002, 11:43
@koepi

When I saied track I ment the physical track on the disk which contains a number of sectors, I'm not shure if its constant or not.

The whole CD is devided into tracks which is like a ring.
The tracks are devided into sectors which are equal sections of the track/ring and they have a constant size but contain diffrent stracture from one implimentation to the other and thats how we gain our extra space.

We impliment our "data" files in a video/audio kind of sectors that anable us to store more information on the same physical media.

The time you save is by reading compleate tracks to the buffer, and not a random number of sectors that just happend to fit into 1MB~ of buffer.

I forgot to mention that the smallest data size that you can read is a sector, even if you read one byte, a whole sector is going to be read and then only one byte is returned to the application, same goas for hard drives.

The memory in the computer doesn't work like that, you can access much smaller data stractures, such as 32bit, as long as they are not smaller then the data bus of the CPU.

@avih

Multythreading is the way to do this with a pipe sharead between the threads, and messages running between them to change reading positions and error messages.

I see that you are trying to stick to non OS specific functions which is great but for low level I/O I'm not shure thats possible, my question is whether you thought of some kind of an I/O layer that buffers between the OS and the application or have you implimented the read function straight in the code ??

But like you saied, the time for optimizations is a little bit later.

Thats it for now.:cool:

Keep on the great work.

avi