View Full Version : ffdshow tryouts project: Discussion & Development
NiFa
17th September 2010, 14:56
Here are some pics from sample 2 when I play it using DXVA.
http://img843.imageshack.us/img843/9440/sakura2m2tssnapshot0000.th.png (http://img843.imageshack.us/i/sakura2m2tssnapshot0000.png/)
http://img651.imageshack.us/img651/3526/sakura2m2tssnapshot0003.th.png (http://img651.imageshack.us/i/sakura2m2tssnapshot0003.png/)
http://i9.aijaa.com/t/00837/6731124.t.png (http://www.aijaa.com/v.php?i=6731124.png)
http://i10.aijaa.com/t/00835/6731125.t.png (http://www.aijaa.com/v.php?i=6731125.png)
http://i3.aijaa.com/t/00160/6731126.t.png (http://www.aijaa.com/v.php?i=6731126.png)
http://i9.aijaa.com/t/00257/6731127.t.png (http://www.aijaa.com/v.php?i=6731127.png)
I have marked the artefacts in pictures.
When I play it using software decoding there are no artefact at all, I think that problem is that my HD4200 just doesn't have enough power to decode 1080i material, this one is my first and only interlaced video at moment.
STaRGaZeR
17th September 2010, 16:00
However, that does go to show that EVR Sync + RGB32 looks pretty damn good!!
Try other renderers if you want, they'll look the same ;)
Do you mean these checks (http://ffdshow-tryout.svn.sourceforge.net/viewvc/ffdshow-tryout/trunk/src/ffmpeg/libswscale/swscale.c?r1=3538&r2=3537&pathrev=3538) in r3538? If so, go ahead and disable them. Please also add a comment that describes the bug in ffdshow.
@Albain, could you have a look at this bug?
Yeah, I meant r3538 not r3537. I've disabled them in r3576.
nevcairiel
17th September 2010, 16:12
I hope this helps!
It did, next version of LAVFSplitter will support multi-channel raw PCM tracks, thanks!
Doesn't even need a audio decoder when your hardware directly supports the format. Needs a filter when you, for example, want to play a 5.1 track on stereo hardware. But ffdshow with raw audio input enabled can do the job of down-mixing it. :)
Edit:
Actually, i lied. I just found a 7.1 PCM track, and my dev system is only setup for 5.1 through a AC3 encoded SPDIF link, and it still plays just fine without any filter.
Although i'm not sure if the DD-Live encoding didn't somehow accept 7.1 while a standard sound renderer wouldn't, oh well.
SamuriHL
17th September 2010, 16:31
Try other renderers if you want, they'll look the same ;)
I shall indeed. Before I started playing with madVR I was using EVR CP. I was playing with EVR Sync trying to match your config to get subs working before you told me what the issue was and forgot to set it back. It does look really good. I'm gonna have to sit and do some comparisons when I get a chance.
Yeah, I meant r3538 not r3537. I've disabled them in r3576.
Sweet. I'm surprised I'm the first one to run into this issue.
SamuriHL
17th September 2010, 16:32
It did, next version of LAVFSplitter will support multi-channel raw PCM tracks, thanks!
Doesn't even need a audio decoder when your hardware directly supports the format. Needs a filter when you, for example, want to play a 5.1 track on stereo hardware. But ffdshow with raw audio input enabled can do the job of down-mixing it. :)
Edit:
Actually, i lied. I just found a 7.1 PCM track, and my dev system is only setup for 5.1 through a AC3 encoded SPDIF link, and it still plays just fine without any filter.
Although i'm not sure if the DD-Live encoding didn't somehow accept 7.1 while a standard sound renderer wouldn't, oh well.
Awesome! I guess this means I'm gonna have to finally get LAVF installed. I've been lazy! :) Thanks for adding this!
Juaneeto
17th September 2010, 20:35
Hi guys,
would somebody please comment on this issue I've posted a few days ago? http://sourceforge.net/tracker/?func=detail&aid=3064948&group_id=173941&atid=867360 I would like to know whether it's really ffdshow bug, or whether it's just a mistake on my side that can be fixed?
Thanks a lot.
Midzuki
18th September 2010, 02:44
@haruhiko_yamagata
I think you forgot to put the back center speaker controls and meter in the volume filter (for something like 6.1 speakers), unless you did that on purpose with the intention of adding it later because like the description for rev.1549 says:
"Volume filter : add control for side channels".
Back center speaker is hidden there beforehand. Back left speaker can be used to configure back center speaker. They are rarely used together. Because there was no space to add one more control, I left it untouched. Though I cant test it.
It shouldn't be "incredibly-difficult" to draw a wider configuration window, I guess.
OK, so the ffdshow configuration applets are made of adamantium and cannot be enlarged, but what about doing something like this:
http://forum.videohelp.com/attachments/3508-1284773942/audio-processor-wise.png
STaRGaZeR
18th September 2010, 14:40
@devs
Have you considered removing some deinterlacers, more specifically kernelDeint, DGBob and TomsMoComp? These are barely faster than Yadif (at least on my system), provide less quality (IMO) and I don't know of anybody that actually uses them inside ffdshow. Same with realaac, it's not even listed as an available filter.
_xxl
18th September 2010, 16:15
realaac - yes, the rest no.
DJ_Phatic
18th September 2010, 18:27
ffdshow doesn't seem to like a 6.1 FLAC stream I have in one of my mkv's, using ffdshow to decode and when using madFlac.
Sample: http://www.mediafire.com/?1dpylzi343f3otc
ffdshow revision 3357.
war59312
19th September 2010, 00:00
ffdshow build 3576 (x86 and x64) is refusing to save its directshow merit level. :(
I cant get WMP to use ffdshow for x264 .avi files for the life of me. :(
Update: ok have to run config as admin, always been the case ?
OK but on very high and wmp still is not using ffdshow..
Ok got that working using Win7DSFilterTweaker by disabling media foundation, too bad that breaks thumbnails though...
Gleb Egorych
19th September 2010, 13:47
Here is a sample: http://www.mediafire.com/?9maeuon2vgbza6u
I watch using Zoom Player, navigate file using mouse wheel.
Audio is resampled from 44.1Khz to 48KHz using libsamplerate high.
FLV splitter 1.3.2099 from MPC-HC project.
Теsted revisions 3500 and 3503. Rev 3500 does not crash, rev 3503 does crash as well as rev 3574. It crashes in ZP and MPC-HC.
Revision 3503 - Directory Listing
Modified Tue Jul 6 16:07:13 2010 UTC (2 months, 2 weeks ago) by clsid2
Updated FFmpeg
Revision 3502 - Directory Listing
Modified Tue Jul 6 13:08:33 2010 UTC (2 months, 2 weeks ago) by albain
Revision 3501 fix : missing file
Revision 3501 - Directory Listing
Modified Tue Jul 6 09:44:20 2010 UTC (2 months, 2 weeks ago) by albain
Revision 3499 fix : deadlocks fixed when using an external audio file. MPC splitter + MPC AC3/DTS filter => OK. But Haali + MPC AC3/DTS filter won't work because Haali's pins are monothreaded and MPC AC3/DTS filter needs a blocking mode (which requires multithreaded pins).
STaRGaZeR
19th September 2010, 19:32
realaac - yes, the rest no.
Done.
To all, I've successfully enabled libavcodec's AAC decoder again. It has decoded everything I've thrown at it, LC, HE v1 and HE v2. Please test and report any issues!
Build: http://www.mediafire.com/?z83xtyw4xay6l7f
XhmikosR
19th September 2010, 19:56
I can confirm it plays back all of my samples, and those which are unsupported by libfaad2! What are the downsides of ffmpeg's aac decoder? If there aren't any maybe libfaad should be removed.
STaRGaZeR
19th September 2010, 20:29
16-bit integer output instead of 32-bit floating point in libfaad2. I guess some audio purists will be against removing it even if it plays things libfaad2 can't play.
Oh I've found something it doesn't decode, AAC-LTP. Nobody uses this, but still.
fastplayer
19th September 2010, 20:55
Why are we so eager to remove things? Choice is a good thing.
Is libfaad holding ffdshow development in any way back? Does it take too long to compile, does it need hacks to get it working etc.?
FYI, there's a feature list (http://git.ffmpeg.org/?p=ffmpeg;a=blob;f=libavcodec/aacdec.c;h=6138dac05e79e1540cc4d89be6e89474d7e3025a;hb=HEAD) of ffmpeg's AAC decoder in aacdec.c.
STaRGaZeR
19th September 2010, 21:18
Why keep two decoders when one of them does at least the same as the other? Useless waste of time, space, etc. This isn't the case here, but that's the reason.
I see LTP is a SoC project, good to know :)
xergon
19th September 2010, 21:20
well.
put it like this:
I play interlaced material with ffdshow maybe four times a year. In case i do, i want highest possible quality.
Activating deinterlacing is the one thing, CHOOSING a proper Deinterlacer is another.
YOU HAVE TWELVE DIFFERENT DEINTERLACING OPTIONS IN THERE.
Thatīs the first time I get an advice which Deinterlacer to use (Yadif). Actually, two Deinterlacers are enough:
one which fits most users - giving best quality. And maybe one with special options, for example the one which is allowing 50fps output.
Well, you know, maybe just give some sort of speed/quality ranking in the help annotations might be enough. Like the ones for the sharpening algorithms.
They are perfectly, even if the best methods like asharpen are not explained at all ... *roll eyes*
Would be perfect if a deinterlace insider writes some descriptions explaining what is the difference between these Deinterlacers.
So, MANY users will just select a deinterlacer by chance. makes no sense.
Mabye ask the authors of the deinterlacers to write a short description. If they donīt react, maybe hide these deinterlacers in some sort of special/advanced option field.
So, yeah, I donīt know every deinterlacer. so just remove the ones which are "bad"/"not so good", or at least mark the recommended deinterlacers and explain why they are recommended.
this would make ... sense :-)
:)
Xergon
fastplayer
19th September 2010, 21:27
Why keep two decoders when one of them does at least the same as the other? Useless waste of time, space, etc. This isn't the case here, but that's the reason.
I see LTP is a SoC project, good to know :)
Choice is really helpful when troubleshooting...
If our goal is to be as close to the ffmpeg source as possible, then there's a lot more to strip out of ffdshow than libfaad. :D
We should wait for more input on this matter from the other devs.
By the way, nice work with the AAC integration! :)
Now give deband to the 64-bit folks :D
Midzuki
19th September 2010, 22:16
O.T.Same.H., libavcodec's mpeg-2 decoder && libmpeg2 are inferior to DScaler 5, so why not get rid of them both as well? :devil: :D
tetsuo55
19th September 2010, 22:20
O.T.Same.H., libavcodec's mpeg-2 decoder && libmpeg2 are inferior to DScaler 5, so why not get rid of them both as well? :devil: :DDo you have any scientific evidence for this? (not interlacing related)
Midzuki
19th September 2010, 23:13
Do you have any scientific evidence for this? (not interlacing related)
It depends on what you mean by "scientific". :)
Anyway, here goes a thing that DScaler 5 does not do:
https://sourceforge.net/tracker/?func=detail&aid=3066498&group_id=173941&atid=867360
Anima123
20th September 2010, 05:49
I can confirm it plays back all of my samples, and those which are unsupported by libfaad2! What are the downsides of ffmpeg's aac decoder? If there aren't any maybe libfaad should be removed.
XhmikosR, have you enabled ffmpeg's aac decoder in your recent builds, like rev. 3577?
NiFa
20th September 2010, 07:03
Here are some pics from sample 2 when I play it using DXVA.
http://img843.imageshack.us/img843/9440/sakura2m2tssnapshot0000.th.png (http://img843.imageshack.us/i/sakura2m2tssnapshot0000.png/)
http://img651.imageshack.us/img651/3526/sakura2m2tssnapshot0003.th.png (http://img651.imageshack.us/i/sakura2m2tssnapshot0003.png/)
http://i9.aijaa.com/t/00837/6731124.t.png (http://www.aijaa.com/v.php?i=6731124.png)
http://i10.aijaa.com/t/00835/6731125.t.png (http://www.aijaa.com/v.php?i=6731125.png)
http://i3.aijaa.com/t/00160/6731126.t.png (http://www.aijaa.com/v.php?i=6731126.png)
http://i9.aijaa.com/t/00257/6731127.t.png (http://www.aijaa.com/v.php?i=6731127.png)
I have marked the artefacts in pictures.
When I play it using software decoding there are no artefact at all, I think that problem is that my HD4200 just doesn't have enough power to decode 1080i material, this one is my first and only interlaced video at moment.
Any changes to get possibility to disable DXVA with interlaced material?
I would but it in code by myself, but I don't have any idea how to do it.
nevcairiel
20th September 2010, 07:22
16-bit integer output instead of 32-bit floating point in libfaad2.
Sadly this is a overall problem with libavcodec. They do decoding internally at full floating point precision, and then cut it to 16bit int for output. <.<
hoborg
20th September 2010, 07:31
Feature request:
MPC-HC MP4 splitter (MP4Splitter.ax) now support old QT *.mov files.
Can be QT PCM audio (subtype {454E4F4E-0000-0010-8000-00AA00389B71}) added to FFDshow audio decoder? MPC MPA decoder already support this, but FFDshow dont connect to MP4Splitter.ax
Here are two samples (http://hobring.esero.net/saf/samples/qt_pcm.zip).
BTW, make sure you have at last MP4Splitter.ax rev. 2551 (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=revision&revision=2551).
With QT PCM, it should be now possible to play all old *.MOV files without QT frameworks and QT source filter...
Thanks.
Ticket (https://sourceforge.net/tracker/?func=detail&aid=3071690&group_id=173941&atid=867363)
fastplayer
20th September 2010, 08:44
XhmikosR, have you enabled ffmpeg's aac decoder in your recent builds, like rev. 3577?
No, he hasn't.
tetsuo55
20th September 2010, 08:49
Sadly this is a overall problem with libavcodec. They do decoding internally at full floating point precision, and then cut it to 16bit int for output. <.<madshi's 1 line patch changes that.
nevcairiel
20th September 2010, 10:02
1 line in every format that it decodes, maybe. Sounds like it would be more. At least changing the definition of the output sample format, changing the data type of the buffers, and disabling the function that cuts down the sample to 16bit int. Maybe 5 lines, yet still in every decoder.
tetsuo55
20th September 2010, 10:49
maybe, send a pm to madshi and he will give you the patch for formats supported by eac3to
albain
20th September 2010, 11:03
ffdshow build 3576 (x86 and x64) is refusing to save its directshow merit level. :(
I cant get WMP to use ffdshow for x264 .avi files for the life of me. :(
Update: ok have to run config as admin, always been the case ?
OK but on very high and wmp still is not using ffdshow..
Ok got that working using Win7DSFilterTweaker by disabling media foundation, too bad that breaks thumbnails though...
This is not related to ffdshow build but to your OS : Vista/7 introduce UAC, and the registry portion which stores the merit is exposed to UAC.
I didn't find a simple way to fix this : ffdshow configuration cannot be run in admin mode, so a separate executable should be done for this with parameters (filter clsid, merit to set)
albain
20th September 2010, 12:56
Do you mean these checks (http://ffdshow-tryout.svn.sourceforge.net/viewvc/ffdshow-tryout/trunk/src/ffmpeg/libswscale/swscale.c?r1=3538&r2=3537&pathrev=3538) in r3538? If so, go ahead and disable them. Please also add a comment that describes the bug in ffdshow.
@Albain, could you have a look at this bug?
Hi,
I don't know what happened exactly : this check was included into the libswscale upgrade process
Also PGS subtitles are extracted in RGB32 mode whereas all the other subtitles formats are extracted in YUV colorspace.
In all cases they are planar into the first plane so this is normal that the planes 2,3,4 are empty when calling ffmpeg scaling methods
SamuriHL
20th September 2010, 13:48
Hi,
I don't know what happened exactly : this check was included into the libswscale upgrade process
Also PGS subtitles are extracted in RGB32 mode whereas all the other subtitles formats are extracted in YUV colorspace.
In all cases they are planar into the first plane so this is normal that the planes 2,3,4 are empty when calling ffmpeg scaling methods
Have you tried PGS subs with ffdshow defaults lately? Cause I got no subs at all until I changed the smoothing method to something other than swscaler gaussian.
allak
20th September 2010, 14:22
maybe, send a pm to madshi and he will give you the patch for formats supported by eac3to
The patch is actually included in the eac3to.zip distribution, in this path:
/legal stuff/ffmpeg/compiling
Anima123
20th September 2010, 15:16
Done.
To all, I've successfully enabled libavcodec's AAC decoder again. It has decoded everything I've thrown at it, LC, HE v1 and HE v2. Please test and report any issues!
Build: http://www.mediafire.com/?z83xtyw4xay6l7f
I have tried this build with some video with Real's cook audio, and it decode the cook with no problem. Thank you STaRGaZeR!
nevcairiel
20th September 2010, 15:16
The patch is actually included in the eac3to.zip distribution, in this path:
/legal stuff/ffmpeg/compiling
Indeed it is. This should be useful for future endavours, but its exactly like i predicted it would be, fwiw =)
tetsuo55
20th September 2010, 15:35
nevcairiel > thanks for the lesson :P
XhmikosR
20th September 2010, 16:01
I did another benchmark, regarding KernelDeint this time:
ffdshow r3680, libmpeg2
Compiler Average fps
========= ===========
MSVC 2008 341
ICL 11.1.0.67 356
GCC 4.5.1 372
KernelDeint GCC 4.5.1 (http://xhmikosr.1f0.de/patches/ffdshow/ff_kernelDeint.dll_gcc451.7z)
KernelDeint ICL 11 (http://xhmikosr.1f0.de/patches/ffdshow/ff_kernelDeint.dll_ICL11.7z)
KernelDeint MSVC 2008 (http://xhmikosr.1f0.de/patches/ffdshow/ff_kernelDeint.dll_MSVC2008.7z)
Can someone else confirm these results and if yes should we remove the KernelDeint from the VS2008 solution file and perhaps the ICL11 solution file too?
I've also added the compiler info for Xvidcore (patch (http://xhmikosr.1f0.de/patches/ffdshow/ffdshow_xvidcore_compiler_info.patch)), does anybody have any problem committing that?
Lastly, what was the decision regarding O3 vs O2?
DJ_Phatic
20th September 2010, 16:42
Have you tried PGS subs with ffdshow defaults lately? Cause I got no subs at all until I changed the smoothing method to something other than swscaler gaussian.
PGS subs appear to be working again with DXVA in rev3577.
Though think I will stick with MPC-HC decoders in Mediaportal for DXVA/subtitles for the time being.
SamuriHL
20th September 2010, 17:05
PGS subs appear to be working again with DXVA in rev3577.
Though think I will stick with MPC-HC decoders in Mediaportal for DXVA/subtitles for the time being.
Right, cause I think the checks were disabled.
STaRGaZeR
20th September 2010, 17:47
Choice is really helpful when troubleshooting...
If our goal is to be as close to the ffmpeg source as possible, then there's a lot more to strip out of ffdshow than libfaad. :D
We should wait for more input on this matter from the other devs.
By the way, nice work with the AAC integration! :)
Now give deband to the 64-bit folks :D
Fully agree. However who said our goal is to be as close to ffmpeg as possible? It's easier since we only have to update ffmpeg to add/fix/whatever stuff, but it's not the only thing in the world, too much ffmpeg drama is bad :D
Deband x64 is still waiting JoshyD's source code, without it I can't do jack, unless someone here rewrites those mmx functions :eek:
I have tried this build with some video with Real's cook audio, and it decode the cook with no problem. Thank you STaRGaZeR!
That build doesn't do anything about Cook, you should thank albain, he's the one who did it ;)
I did another benchmark, regarding KernelDeint this time:
ffdshow r3680, libmpeg2
Compiler Average fps
========= ===========
MSVC 2008 341
ICL 11.1.0.67 356
GCC 4.5.1 372
KernelDeint GCC 4.5.1 (http://xhmikosr.1f0.de/patches/ffdshow/ff_kernelDeint.dll_gcc451.7z)
KernelDeint ICL 11 (http://xhmikosr.1f0.de/patches/ffdshow/ff_kernelDeint.dll_ICL11.7z)
KernelDeint MSVC 2008 (http://xhmikosr.1f0.de/patches/ffdshow/ff_kernelDeint.dll_MSVC2008.7z)
Can someone else confirm these results and if yes should we remove the KernelDeint from the VS2008 solution file and perhaps the ICL11 solution file too?
I've also added the compiler info for Xvidcore (patch (http://xhmikosr.1f0.de/patches/ffdshow/ffdshow_xvidcore_compiler_info.patch)), does anybody have any problem committing that?
Lastly, what was the decision regarding O3 vs O2?
I'd remove it and use GCC instead, because of your results and because x64 can't be compiled with ICL11.
Don't commit the xvid change, I've done it in a better way plus organizing the versions window a bit.
And I'll asnwer your PM now, too much stuff yesterday :p
_xxl
20th September 2010, 18:27
I've also added the compiler info for Xvidcore (patch (http://xhmikosr.1f0.de/patches/ffdshow/ffdshow_xvidcore_compiler_info.patch)), does anybody have any problem committing that?
Lastly, what was the decision regarding O3 vs O2?
Xvidcore, yes commit. xvidcore, x264, ffmpeg and mplayer should only be compiled by GCC.
_xxl
20th September 2010, 18:38
Maybe all ffdshow's libs could be integrated inside ffdshow.ax. No more a lot of dll's. Why not?
nevcairiel
20th September 2010, 21:54
Statically linking ffmpeg on windows is not a good idea, and not supported upstream.
Why do the number of dlls matter anyway? You have an installer to take care of this. :)
Midzuki
20th September 2010, 21:57
^ BTW, why there is no ff_theora.dll since revision 30** ?
clsid
20th September 2010, 22:03
KernelDeint -> Removing MSVC/ICL is OK with me. Perhaps just disable building of it in the solution file. Optional compiling with MSVC may be useful for easier debugging if ever needed.
Deband x64 -> I think we should disable the option on x64 until the performance can be fixed. That should avoid the constant complaints about it now working.
fastplayer
20th September 2010, 22:06
Deband x64 is still waiting JoshyD's source code, without it I can't do jack, unless someone here rewrites those mmx functions :eek:
Yep, __m64 is a no-go for 64-bit CPUs... :(
While "researching", I noticed that the VLC guys recently committed gradfun to the 1.2.0-trunk. Here are the files:
gradfun.h (http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_filter/gradfun.h;h=4b30748b5178c2a8d1b6c2e6436ba2eb14936361;hb=HEAD)
gradfun.c (http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_filter/gradfun.c;h=761f69ba4db1d39de49fa22c14dc26da93ecb10b;hb=HEAD)
Maybe you could forward this to JoshyD, if you're in contact with him.
STaRGaZeR
21st September 2010, 00:14
KernelDeint -> Removing MSVC/ICL is OK with me. Perhaps just disable building of it in the solution file. Optional compiling with MSVC may be useful for easier debugging if ever needed.
Deband x64 -> I think we should disable the option on x64 until the performance can be fixed. That should avoid the constant complaints about it now working.
What about mp3lib, skal, tremor and theora? VP8 enabled by default?
On deband, I've hidden it from view in r3586.
Yep, __m64 is a no-go for 64-bit CPUs... :(
While "researching", I noticed that the VLC guys recently committed gradfun to the 1.2.0-trunk. Here are the files:
gradfun.h (http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_filter/gradfun.h;h=4b30748b5178c2a8d1b6c2e6436ba2eb14936361;hb=HEAD)
gradfun.c (http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_filter/gradfun.c;h=761f69ba4db1d39de49fa22c14dc26da93ecb10b;hb=HEAD)
Maybe you could forward this to JoshyD, if you're in contact with him.
In contact? I just asked for the code of one of his filters :D He has a x64 port of Gradfun2DB posted in his Avisynth x64 thread, the problem is that it comes without the source code and he's been MIA for several months and who knows if he's ever going to post it :(
STaRGaZeR
21st September 2010, 02:57
Ticket (https://sourceforge.net/tracker/?func=detail&aid=3071690&group_id=173941&atid=867363)
Added :)
Sebastiii
21st September 2010, 05:58
Added :)
Thanks for all improvements :)
Seb.
Ps: You didn't sleep ? :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.