View Full Version : dffshow filter
Pages :
1
2
3
4
[
5]
6
7
8
9
10
11
12
13
14
athos
6th September 2002, 10:59
@milan, about the post processing strength. i found out that this was causing the slowdown i mentioned when i switch users. for some reason it was set to 50% for my other users, and therefore reduced the framerate to 3fps or something. when i set it at 100% it works great with postprocessing enabled.
@oddball, the 10% increase in cpu usage might well be me using worse optimization flags than milan when compiling. I am still learning :)
i am trying to compile with vc++6 still. now im down to a link problem, i get an error saying some symbols have allready been defined. of course, vc++7 doesnt mind. i did not upload this latest build to sekxx' site, because it has milans deinterlacing hardcoded. to me, it makes a non-interlaced clip look interlacing..
about the interlacing, i do not really understand why it has to be so difficult to handle. i browsed the 100fps.com site. from what i understand, in interlaced video every other frame has the even lines and every other has the odd lines. shouldnt it be pretty easy just to combine these to frames into one or two deinterlaced frames? i guess im missing something, because this doesnt sound like it should have to be too cpu intensive.
milan
6th September 2002, 11:13
i am trying to compile with vc++6 still. now im down to a link problem, i get an error saying some symbols have allready been defined. of course
If you will send me build log with names of duplicate symbols, I will try to help you.
About deinterlacing: as I wrote I'm just begginer to this (have read www.100fps.com too). Others surely will give you better answers than I would be able. For me now it's only sufficient that I'm able double the framerate in ffdshow (output each field in separate frame) and this weekend I will try to add new deinterlace method: TomsMoComp.
athos
6th September 2002, 11:29
Originally posted by milan
If you will send me build log with names of duplicate symbols, I will try to help you.
Thanks, you have PM.
athos
6th September 2002, 14:20
Ok milan helped me so that I can now compile in VC++6. I have uploaded a new compile with a freshly checked out source @ http://ffdshow.sekxx.org/ffdshow-20020906.exe
Since this is VC++6, there is no need for the msvcr70.dll file. I used Intel C++ Compiler 6.0 with -O3 optimze setting.
@milan> Perhaps the libavcodec gets even more optimized if you use -O3 instead of -O2 in the config.mak, ie:
OPTFLAGS=-O3 -march=i586 -mcpu=i686 -fomit-frame-pointer -finline
also, i prefer not to have the ffdshow.ax filter automatically registered after a compile, but i guess thats a matter of taste.
Another small thing - there was an "F" at the beginning of the TffDecoder.cpp file which caused some compile problems, but i guess youve allready seen that.
cult
6th September 2002, 15:39
I think I found A bug.Whatever color u select in osd it will change it to black.The only way is to unistall the filter and let the green it has as deafult.
oddball
6th September 2002, 21:09
Whatever you did in this latest build sorted all the CPU usage issues. In fact I would say it's running faster than ever!
I can have both black borders and pre-processing enabled and it's not maxxing out my CPU anymore. It hovers around 50-60% mostly.
Cool! Thanks for this great app guys. I look forward to further developments. :)
BTW Gabest, read the PM I sent you ;)
MaTTeR
6th September 2002, 23:08
Originally posted by oddball
Whatever you did in this latest build sorted all the CPU usage issues. In fact I would say it's running faster than ever!
I have to agree, the ICL build obviously likes my PIII 800 HTPC. Nice work guys!
athos
7th September 2002, 15:45
Yeah it seems to work fine. Milan has already implemented TomsMoComp! However, deinterlacing does not seem to switch off when you disable it. Still, great work Milan!
mkanet
7th September 2002, 19:10
Can someone look into why all the latest unofficial builds of fdshow have broken gamma correction? With the last official build on sourceforge, gamma correction works correctly.
For me, having the gamma correction in ANY position besides "off" will jump to a really high gamma level; nothing in between. It does the same thing with under levels. Basically, leaving me with either too much gamma or no gamma correction.
I am using a Geforce 3 with the Detonator 4 drivers from Nvidia.
milan
9th September 2002, 07:54
I think I found A bug.Whatever color u select in osd it will change it to black.The only way is to unistall the filter and let the green it has as deafult.
Thanks. It's fixed now. OSD font configuration was quite broken: typical copy'n'paste bug.
I have to agree, the ICL build obviously likes my PIII 800 HTPC. Nice work guys!
I had only 30 day evaluation ICL version which expired long time ago. Donations are wellcome :)
Milan has already implemented TomsMoComp! However, deinterlacing does not seem to switch off when you disable it. Still, great work Milan!
Only the GUI for TomsMoComp is implemented for now. It does nothing yet. Sorry.
Can someone look into why all the latest unofficial builds of fdshow have broken gamma correction? With the last official build on sourceforge, gamma correction works correctly.
Gamma correction in Picture properties page uses MMX optimized code from http://www.stereopsis.com/polygamma.html .It is an approximation with quadratic polymonial and is faster than the old lookup table method. However, only 2.2 gamma correction is working now. For the other values to work I have to compute coefficients for approximation function with least squares method or whatever... Anyone interesting in this?
For now you can use levels filter: it has gamma correction which works. It uses lookup table like the old gamma correction method did and it's even more precise.
athos
12th September 2002, 11:44
I have made a new compile today, download at http://ffdshow.sekxx.org/ffdshow-20020912.exe. I also made a compile a couple of days ago that i uploaded but forgot to post here :\ (download @ http://ffdshow.sekxx.org/ffdshow-20020909.exe). All compiles now are VC6 with ICL, so I removed the VC7 file as it is no longer necessary. I will post my compiles at http://ffdshow.sekxx.org, so check there if you want to be sure not to miss anything in case i forget to post :)
New in todays compile are the beginning of MPEG-1 and MPEG-2 decoding support. MPEG-1 works ok until I try to fastforward, MPEG-2 works only very little. Still, this CVS snapshot was taken in the middle of milan's development, and I'm sure all will work great when he's finished! Imagine, one codec for ALL MPEG1/2/4!!
All we need is sound support *hint hint* :D:D:D
milan
12th September 2002, 12:06
Since I started ffdshow development I wanted MPEG1 and MPEG2 decoding because libavcodec supports it. For long time I didn't know how to do this, because mpeg demuxers output packets and not frames. Now I'm making some progress: MPEG 1 is decoded quite correctly (on few sample clips I'm using to test there are only small image corruptions after seeking). MPEG 2 is a bit harder, but I had some success too. BTW I'm using Ligos MPEG splitter: it works better for me.
The main problem is timing: I don't know how to set frame timestamps and now video is played at maximum speed allowed by CPU.
About sound support: I think mp3 and ogg directshow decoders are good enough, but there are of course some possible speed improvements: using Tremor for ogg decoding (AFAIK it's faster) and for mp3 could be used MMX/3DNOW/K7/SSE optimized mp3 decoder from mplayer. But don't want me to do this, because I have no experiences in creating audio decoding filters and I don't know about any GPLed project, which I could use as a base for experiments.
And if someone wants to develop something realy useful: what about directshow mp4 demux filter. Or is it already being developed?
athos
12th September 2002, 12:11
The part about audio support in ffdshow was more of a joke:) However, it would be really cool to have a "general" audio decoder filter for mp3/ac3/ogg/aac much like ffdshow is for video.
milan
12th September 2002, 12:21
I know, but I just had some ideas and thought someone might find them useful.
Defiler
12th September 2002, 16:18
I have at least one AVI here (DIVX FourCC), that is total madness with the Athos builds of ffdshow.
I've tried the three versions linked in this thread, all are the same. If I use the 6-17-02 official build of ffdshow, or DivX 5.02 Pro to decode the AVI, everything is fine. I had a friend verify this on a very different machine, yielding the same results.
Here's what it looks like:
http://hellninjacommando.com/misc/athos-ffdshow.jpg
Rrrough
12th September 2002, 22:37
hey, maybe the idea of the "universal-audio-decoder" isn't that far away...
take a look at this thread, maybe someone could help out...?
http://forum.doom9.org/showthread.php?threadid=33224
lat3ralis
12th September 2002, 22:49
AC3 decoding would be good ;)
I always have problems decoding an avi with an ac3 track
in wmp 6.4 :(
milan
13th September 2002, 06:56
@Defiler
This is realy bad. Please could you send me small part of that file? I would like to test it.
@Rrrough
I just asked for sources.
oddball
13th September 2002, 11:10
Good stuff.
Any idea when we will see some more control over black borders? Ideally I'd like to be able to shift the TV out overlay to the left or right and up or down. But not sure how this would work. I can only think that a seperate control to shrink from left to right or right to left or top to bottom or bottom to top would work in this instance. Then I can finally adjust my TV's overscan to compensate for a right shift on S-Video inputs (Which is what I used for the PC TV out). At present my TV overscan positioning sits somewhere between with a little cropping on the right hand side on S-Video in and cropping on the left on RGB sources (Like Digital satellite).
If I can find a way to shift output from the PC TV out to S-Video in on the TV using ffdshow I can have the TV setup to display perfectly on all sources.
It's a selfish request I know :)
milan
13th September 2002, 11:24
Just a quick solution for now:
Add black borders, select offset filter and move it after resize&aspect, check "process whole image" and move sliders (set both luma and chroma shifts to equal). If I understood your problem correctly, this should help.
BTW I've never tried TV output and I don't have any experiences with possible problems.
athos
13th September 2002, 12:39
Originally posted by milan
But don't want me to do this, because I have no experiences in creating audio decoding filters and I don't know about any GPLed project, which I could use as a base for experiments.
Well apart from mplayer, there is the MAD project (http://www.mars.org/home/rob/proj/mpeg/) which is GPL and imo renders the best sound. Of course the OGG project is also GPL (the is a directshow project @ http://sourceforge.net/projects/mediaxw doesnt seem to have been updated for a while though). As pointed out above, there is a GPL AC3 prject (http://xvalex.hotbox.ru/programs/ac3filter/ac3filter_eng.html)
For AAC, there is the MPEG4IP project (http://sourceforge.net/projects/mpeg4ip/) I'm not sure how helpful it would be though.
Originally posted by milan
And if someone wants to develop something realy useful: what about directshow mp4 demux filter. Or is it already being developed?
Well, Nic has made some work on a aac dshow filter, I'm not sure if it includes mp4 demuxing. The "crappy beta2" version can be found here (http://www.inf.ufpr.br/~rja00/files/AAC2WAV.zip).
For me the greatest benefits of an audio counterpart of the ffdshow filter would be:
OpenSource, with all the benefits that comes with this
One filter for all (or most) audio, at least the audio used in video files.
Because it is the same filter, the same settings apply, for example dedynamic and speaker settings.
I am sorry that I am not experienced enough in directshow programming to initiate such a project, but one can still dream :)
Defiler
13th September 2002, 13:32
Originally posted by milan
@Defiler
This is realy bad. Please could you send me small part of that file? I would like to test it.
My pleasure. I verified that even after trimming, it plays properly with 6-17-02, and improperly with 9-xx-02 builds.
ffdshow test clip (http://hellninjacommando.com/misc/avisynth/ffdshow-insane.avi)
milan
13th September 2002, 13:51
I'm not able to download it. I'm behind a firewall and can't download AVIs right now. Please change the extension or compress it to zip.
Thanks
Defiler
13th September 2002, 13:55
Originally posted by milan
I'm not able to download it. I'm behind a firewall and can't download AVIs right now. Please change the extension or compress it to zip.Here's a zipped version:
ffdshow test clip (zipped) (http://hellninjacommando.com/misc/avisynth/ffdshow-insane.zip)
milan
13th September 2002, 14:23
Just a few minutes ago I posted this message to "Bad news for interlacing" thread:
ffdshow now supports (thanks to libavcodec and especialy Michael Niedermayer) both XviD interlaced 'modes'. On misc. page in cfg dialog is new option "workaround bugs", where you can set if next played movie should be treated as old xvid interlaced video.
This changed was commited to CVS few minutes ago so no binaries yet.
If you'll select "old libavcodec and opendivx files" workaround, your file will be played correctly.
billou2k
13th September 2002, 14:47
Hi and congratulations with the new versions of ffdshow
It's amazing all the new features you've put in it:D
just a small problem (hehe): I've just noticed on the machine I m using that once I press stop I cant play the video again : if I press play after that it just goes directly to the last frame of the sequence. the same thing happens if the video plays till the end and I want to play it again.
the only solution is to reload it in the player.
did someone notice that as well?
btw I tried defiler's sequence and it's the same for me, the video is just messed up, but even without using ffdshow I'm snot sure your sequence is ok: I've got a strange green sequence and text with blocks , only the second part looks ok. When running it in vdub it just crashes it when playing. it seems that just the end of the sequence is not corrupted that could be why ffdshow doesnt play it correctly.
milan
13th September 2002, 14:53
just a small problem (hehe): I've just noticed on the machine I m using that once I press stop I cant play the video again : if I press play after that it just goes directly to the last frame of the sequence. the same thing happens if the video plays till the end and I want to play it again.
the only solution is to reload it in the player.
When athos compiled latest ffdshow version, there was very stupid bug (= instead of == in comparison) in CVS. It was fixed soon after. Just wait for new build.
Defiler
13th September 2002, 14:53
Originally posted by billou2k
btw I tried defiler's sequence and it's the same for me, the video is just messed up, but even without using ffdshow I'm snot sure your sequence is ok: I've got a strange green sequence and text with blocks , only the second part looks ok. When running it in vdub it just crashes it when playing. it seems that just the end of the sequence is not corrupted that could be why ffdshow doesnt play it correctly. Works great for me in VirtualDub, with ffdshow 6-17-02, and with the "Official" DivX codecs. I've tested it extensively. Clearly there's something "interesting" about the clip, but it does play properly without the latest ffdshow.
billou2k
13th September 2002, 15:12
@defiler :I realise now I dont have divx 5 installed on the machine i tested the sequence but only an old opendivx version that's probably why it was messed up;-) sorry about that.
@milan: I see:D I did that one too many times as well;-)
thanks
athos
13th September 2002, 15:22
It seems like its time for a new build: http://ffdshow.sekxx.org/ffdshow-20020913.exe
I only tested it briefly.
billou2k
13th September 2002, 15:41
Great!
works fine with me!
(but defiler sequence still screwed.)
THX!
oddball
13th September 2002, 18:26
Thanks Milan. The luma/chroma method really did the trick. :)
jamest
13th September 2002, 21:02
I had OSD on but CPU always show 0 even when all settings maxed with visible lagged fps.
athos
14th September 2002, 00:40
Originally posted by jamest
I had OSD on but CPU always show 0 even when all settings maxed with visible lagged fps.
It works for me, but it is not very accurate. Either 0%, 25% or 50%. Perhaps you are always below 25% and therefore 0%?
Defiler's test clip is weird for me too, but milan's workaround does the trick.
wizzzard
14th September 2002, 01:21
Hello, milan,
first I want to thank you for this great piece of software. You made something true that was the dream of many home cinema fans - a filter you can use with a DVD graph.
Your filter is heavily discussed at AVS and the biggest german HT forum at www.beisammen.de
Perhaps you find some time to think about a question.
I love your unsharp mask but it generates some noise as a side effect. There is no adjustable noise filter (to remove the noise) so my trick is to use the blur filter. I de-activate the "Soften" abd bring the "Temporal smooth" on "1". It works, but the processor usage is extremly high. Even my XP 1900+ has problems. Is there a way to make it more efficient?
Can you add a simple noise filter? I think this is importend for DVD and video. My DivX Files has some times much noise within and so I would be glad to reduce it. The best would be an adjustable noise filter for different quality sources. I know there is a temporal noise filter in Post Processing but it's not adjustable, so for most sources it's to strong ;)
Best Regards
Frank
Defiler
14th September 2002, 04:54
Wizzzard: Welcome to Doom9. Always nice to see AVSForum guys here.
wizzzard
14th September 2002, 09:38
Hello,
thanks for the warm welcome. I'm not really an AVS Guy, because I personally think it's censored. I'm more a www.beisammen.de guy, but sorry it's in german. I'm called "frbie" there and there is a big thread about the new possibilities with ffdshow and DVD playback. This is something we ever wanted - the possibility to improve the picture quality with a seperate filter you can use with the Zoomplayer. The Zoomplayer is the favorite frontend for most of the DVD enthusiasts.
You find the german thread here. (http://212.105.197.47/vbportal/forums/showthread.php?s=&threadid=20688) Perhaps you can translate it with bubblefish when you're interested. It's about using ffdshow with DVD's.
When it's not allowed to post links to other forums, remove the link please.
CU
Frank
mi5
14th September 2002, 20:24
milan: first of all, thanks for the great piece of software. ffdshow made it possible for me to watch divx content on my second computer (a K6-2, 400) as it decodes divx content quite a bit faster then divx itself. I am using the latest official build.
now, after I've found this thread, I have downloaded and tried latest builds by athos and have to say that performance has reduced somewhat. now it is on par or slightly slower then divx 5.02. I am normally not using any post-processing or advanced features, so can only assume that something changed in the decoder core. Or is it no longer 3Dnow optimized?
athos
14th September 2002, 22:07
I think this might have to do with my optimization settings. I am aiming for Pentium Pro / Pentium II and higher.
Perhaps it would be a good idea to make different builds aimed at different architectures, for example a Pentium build and a Pentium 4 build? Maybe AMD builds? I will try to change my settings for my next build and we will see if it makes any difference.
MaTTeR
14th September 2002, 22:14
CPU specific compiles would be most welcome:D I'd love to see an AMD/Athlon optimized compile.
Maybe it's already been brought up but what are the chances to see the Lanczos resize filter implemented? Just a thought
Great work guys!
EDIT: Ooops...just noticed the lastest version has the Lanczos resize filter:D Sorry I never noticed it before.
athos
15th September 2002, 00:24
I think I found a bug. If I choose Xvid iDCT (I have Xvid installed btw), the settings wont be saved. The next time I check properties, it will be sett to the older version of the "simple" iDCT. This happens whether or not I have checked use xvid dll for XVID codec (this probably doesnt matter).
ookzDVD
15th September 2002, 07:30
@athos,
Thank you for your ffdshow's build, but if you don't mind,
would you please add the _change_log_ everytime you release
new build.
mi5
15th September 2002, 09:17
athos: good idea with processor specific builds. would probably also make sense also to make separate builds for higher end (Athlon XP/P4) and one for older processors.
aware it's extra work for you, but trust me a lot of people will appreciate that.
athos
15th September 2002, 09:51
About cpu-specific builds: I think I will wait with this until the next stable release. I will try to modify my compiler parameters to better support lower-end cpus for the next release though.
About changelogs: Milan is doing all the development, and he writes changelogs for the stable releases. I have asked uManiac to use his system of latest CVS commit comments for a kind of "user-unfriendly" changelog like he uses for his xvid instabuilds.
wizzzard
15th September 2002, 10:01
Originally posted by athos
About cpu-specific builds: I think I will wait with this until the next stable release. I will try to modify my compiler parameters to better support lower-end cpus for the next release though.
About changelogs: Milan is doing all the development, and he writes changelogs for the stable releases. I have asked uManiac to use his system of latest CVS commit comments for a kind of "user-unfriendly" changelog like he uses for his xvid instabuilds.
Hello, arthos,
this is a very important point for many of us. I use a Athlon XP 1900 and as many others I use it for DVD. My best configuration includes the unsharp mask combined with the Blur - temporal smoth. But I cannot use it because there are to much frame droppes. My CPU is used about 98% (with a GeForce 4) and 100% (with a Radeon VE - PCI. Can you image ;)? You see a real good picture and you cannot use it :( And this a 1900+
Please help with this lower CPU release.
Thanks in advance.
Frank
athos
15th September 2002, 10:09
I think some of these filters (for example temporal smooth) are in unoptimized c++ code. there is only so much the compiler can do about this. the post-processing on the other hand, is hand-optimized in assembler, and thus really fast no matter what compiler settings.
milan can answer this better.
ffdshow is compiled in both vc++ and gcc. for vc++ i use intel's compiler, which i guess optimizes mostly for intel cpu's. there are some compiler options in gcc for amd, but other than that i dont know how to better support those cpus. are there any amd-specific compilers?
wizzzard
15th September 2002, 19:01
Hello, arthos,
thanks for answer. When I understood in the right way the only person who can solve the problem is milan himselfs.
I can only hope that he'll find the time. In fact it's not so much. The only real point is the blur filter. All others are normal in processor usage. I personally find the temporal smoth really importend.
Do you know the feeling. You see something sweet but you cannot reach it ;)
Frank
milan
16th September 2002, 07:24
I had OSD on but CPU always show 0 even when all settings maxed with visible lagged fps.
What Windows version are you using? Does automatic quality control work? I'm asking because CPU load measuring code was converted from one Delphi unit and maybe I've made some bugs.
It works for me, but it is not very accurate. Either 0%, 25% or 50%. Perhaps you are always below 25% and therefore 0%?
CPU load is measured after each frame is decompressed by reading windows performance stats. Propably they are not precise enough. Maybe some averaging would help.
I love your unsharp mask but it generates some noise as a side effect. There is no adjustable noise filter (to remove the noise) so my trick is to use the blur filter. I de-activate the "Soften" abd bring the "Temporal smooth" on "1". It works, but the processor usage is extremly high. Even my XP 1900+ has problems. Is there a way to make it more efficient?
Temporal smooth is slightly modified VirtualDub filter. It isn't MMX optimized, because I wasn't able to do this. For me it seems, that this filter isn't very suited for MMX optimizations. But maybe I'm wrong and someone will find possible ways to optimize it...
There are lot of temporal smoother filters either for VirtualDub or AviSynth. If you can suggest me one, which if good and fast, I will add it to ffdshow.
BTW temporal smooth was added to ffdshow because I needed denoising during encoding. It wasn't meant for realtime operation.
now, after I've found this thread, I have downloaded and tried latest builds by athos and have to say that performance has reduced somewhat. now it is on par or slightly slower then divx 5.02. I am normally not using any post-processing or advanced features, so can only assume that something changed in the decoder core. Or is it no longer 3Dnow optimized?
I'm not sure what was changed in libavcodec, but surely optimized code was added and not removed. Compiler settings can have some speed impact on libavcodec. For my Athlon Thunderbird it surely helps. To try it, you can download mingw (with gcc-3.2) and try some settings. If you will need help, feel free to ask.
I think I found a bug. If I choose Xvid iDCT (I have Xvid installed btw), the settings wont be saved. The next time I check properties, it will be sett to the older version of the "simple" iDCT. This happens whether or not I have checked use xvid dll for XVID codec (this probably doesnt matter).
Thanks. It is fixed now.
And about changelogs: automatic changelog generated from CVS would be good. However I would have to write better changes description when commiting to CVS. Now they are very short and sometimes not very exact.
Defiler
16th September 2002, 12:54
milan: Just to clarify.. Is the workaround quoted above (for the sample clip I posted) your final statement on the matter, or are you researching a fix for a future version of ffdshow?
milan
16th September 2002, 13:06
It plays correctly for me when bugs workaround option is selected. I can ask Michael Niedermayer why such clips were decoded correctly with older libavcodec versions with default settings and why now some other option has to be specified.
If other clips won't be affected with that bugs workaround I can make it default.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.