View Full Version : ffdshow tryouts project: Discussion & Development
hoborg
21st September 2010, 06:48
Added :)
Thanks!
fastplayer
21st September 2010, 08:46
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 :(
Argh. GPS implants should be mandatory...
hoborg
21st September 2010, 09:02
Hi.
This sample (http://www.volny.cz/hoborg/test.zip) will freeze durning playback if FFDshow DXVA decoder is in use.
It play fine using MPC-HC DXVA, MS VIDEO decoder or standard FFDShow h.264 decoder.
Anybody already try it?
I can report i have similar problem with well known killer sample - picture freeze after few secs, but audio continue.
Tested on Win7 + ATI 5770 + Cat. 10.8.
NiFa
21st September 2010, 10:03
Tested it and I can reproduce to problem.
Win7 + ATI HD4200 + Cat. 10.9
STaRGaZeR
21st September 2010, 12:09
Thanks for all improvements :)
Seb.
Ps: You didn't sleep ? :)
I did, I just wake up :p
Argh. GPS implants should be mandatory...
:D
SamuriHL
21st September 2010, 16:07
I need some help. A quick background and then my question. I just upgraded my AMD 4850 to a shiny new nVidia 450 (ASUS overclocked :D) on my AMD X2 4200 machine. W7 64 as always for me. Not an especially powerful machine but with DXVA she's all good for video playback. I've got the desktop set to 1080p/24. With the AMD 4850, everything was smooth as butter.
Now, with the 450, I opened up MPC-HC 64 bit with ffdshow configured for dxva and bitstreaming, and loaded up one of my MKV's. CPU usage spiked to max immediately and video was badly stuttering. After a *LOT* of troubleshooting, I have determined the exact cause. This is where I need some help. If ffdshow dxva has surface overlay enabled (which is needed for subtitles), that's when the CPU spikes and video stutters. If I turn that off, CPU usage is back down to a realistic 25-30%. This did NOT happen with the 4850. Does anyone have any ideas? Help?! :)
STaRGaZeR
21st September 2010, 16:28
nvidia drivers suck? :D
To all, testing time again! I've enabled libavcodec's floating point MP1,2,3 decoder instead of the integer one. It should play everything the old one des, but test it and report your findings.
Build: http://www.mediafire.com/?k8y1fakk2ayqoie
SamuriHL
21st September 2010, 16:31
Hey that wasn't very helpful! :p LOL! I know your feelings on DXVA in general but on that machine I don't have a lot of choice. Although CUDA decoding has been suggested as a possibility. Nonetheless, doesn't this surface overlay issue seem, I don't know, like an issue?? :D
STaRGaZeR
21st September 2010, 16:39
Dunno, you're the first one to report this. Also I don't know anything about DXVA, so meh.
SamuriHL
21st September 2010, 16:43
Yea, I'm just lucky that way these past 2 weeks I guess. :)
SamuriHL
21st September 2010, 17:15
I was able to setup RGB32 on that machine using CoreAVC to decode using CUDA. It doesn't help with VC-1 but at least I can get rid of DXVA on AVC now. That's something at least.
STaRGaZeR
21st September 2010, 17:30
Why did you change your card? You should have spent that money in a faster CPU IMO. Slow CPU = you need DXVA or CUDA = limitations and problems.
SamuriHL
21st September 2010, 17:37
Several reasons. The 4850 was not a good fit for the case it was in. It was enormously hot and loud. Plus I wanted bitstreaming on MKV's because there's no open source DTS-HD MA decoder. And PhysX for the casual gaming I do on that machine. Yes, a better CPU would be nice, but, I refuse to go AMD again so I'd want to replace the mobo and get an i5 minimum. I'm not ready to deal with all that at the moment. The way it's setup right now works quite well. I was just playing around with it. Video is smooth, bitstreaming works, and the machine is whisper quiet. No real complaints. At some point, yes, the mobo and cpu will get upgraded.
XhmikosR
21st September 2010, 22:36
@STaRGaZeR: thanks a lot for fixing the crash with the ICL11 builds! It was a crash I hit a lot of times.
NiFa
22nd September 2010, 16:39
Could some one tell me how can I compile my own ffdshow? I would like to add checkbox to disable DXVA for interlaced material in DXVA settings, how do I do this?
fastplayer
22nd September 2010, 16:59
Could some one tell me how can I compile my own ffdshow?
http://ffdshow-tryout.sourceforge.net/wiki/devel:building
NiFa
22nd September 2010, 17:29
Can't someone make a pack which contais all needed softwares? I have no idea what softwares I need, because some parts of wiki seems to be outdated, and I can't find some of the mentioned softwares or then I'm just blind.
XhmikosR
22nd September 2010, 17:53
The wiki is up to date, but its goal is not to teach you how to set up MSYS/MinGW. Maybe this (https://sourceforge.net/apps/trac/mpc-hc/wiki/How_to_compile_the_MPC#PartB:PreparingtheGCCenvironment) helps (it includes all the needed components regarding MSYS/MinGW).
NiFa
22nd September 2010, 18:01
Do I need to use DirectX SDK feb 2010 or can I use newer? Also do I need to use Visualstudio 2008 or can I use 2010 version?
Gleb Egorych
22nd September 2010, 18:06
I've enabled libavcodec's floating point MP1,2,3 decoder instead of the integer one. It should play everything the old one des, but test it and report your findings.
Haven't faced any problem, CPU usage seems to be the same. Removing forced 16-bit downconversion of decoded stream would be great.
XhmikosR
22nd September 2010, 19:10
Do I need to use DirectX SDK feb 2010 or can I use newer? Also do I need to use Visualstudio 2008 or can I use 2010 version?
1) Yes you can
2) I don't see the ffdshow wiki mentioning Visual Studio 2010 somewhere so I don't know where you got that. ffdshow cannot be built with VS2010, at least not at the time of writing this post.
NiFa
22nd September 2010, 19:12
So I need to use visual c++ 2008? Can I use express version?
_xxl
22nd September 2010, 20:47
So I need to use visual c++ 2008? Can I use express version?
Yes, you can. Please read instruction how to compile ffdshow.
Don't forget that some parts are compiled by gcc and yasm.
_xxl
22nd September 2010, 20:56
@stargazer69
/*.init = */decode_init,
/*.encode = */NULL,
/*.close = */NULL,
/*.decode = */decode_frame,
/*.capabilities = */CODEC_CAP_PARSE_ONLY,
/*.next = */NULL,
/*.flush = */flush,
/*.supported_framerates = */NULL,
/*.pix_fmts = */NULL,
/*.long_name = */NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)")
decode_init,
NULL,
NULL,
decode_frame,
CODEC_CAP_PARSE_ONLY,
.flush= flush,
.long_name= NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)")
If I remember correctly those modifications are required to build MSVC 2008 debug build. Can you please check it? :)
NiFa
22nd September 2010, 21:13
I only want to add two features to DXVA.
-Possibility to disable DXVA with interlaced material
-AR correction when video resolution is 4:3, but PAR is 16:9
I'm trying really hard to learn how to do those changes, but it seems that I need to find out is scan type MBAFF or PAFF, how do I get this info and how I link it to so that if scan type MBAFF or PAFF it won't be decoded using DXVA? AR correction is another feature which I would like to put in ffdshow DXVA.
None of the tutorials I have read mention anything about DXVA, so I'm little lost at moment.
If someone wants help please post it here (http://forum.doom9.org/showthread.php?t=156977).
STaRGaZeR
22nd September 2010, 23:41
If I remember correctly those modifications are required to build MSVC 2008 debug build. Can you please check it? :)
Will do. However, the last time I tried to build libavcodec with MSVC (debug or release) I couldn't because of errors, way before my changes.
EDIT: You're correct. MSVC needs that. But now there is a bigger problem. Line 935, aacdec.c
union float754 s = { .f = *scale };
error C2059: syntax error : '.'
Any ideas?
fastplayer
23rd September 2010, 09:16
union float754 s = { .f = *scale };
error C2059: syntax error : '.'
Any ideas?
You probably tried it already but I still gotta ask:
What does the compiler say when you put an s in front of .f?
Like this:
union float754 s = { s.f = *scale };
STaRGaZeR
23rd September 2010, 09:44
You probably tried it already but I still gotta ask:
What does the compiler say when you put an s in front of .f?
Like this:
union float754 s = { s.f = *scale };
Yep, that works. Only to find one more in g726, line 329 (error C2059: syntax error : '{'):
avctx->frame_size = ((int[]){ 4096, 2736, 2048, 1640 })[index];
This one can be fixed too, but it's ok to add this kind of custom code? I don't like it, well I don't like custom code at all, makes it more difficult to update ffmpeg and it's ugly :p
fastplayer
23rd September 2010, 11:21
This one can be fixed too, but it's ok to add this kind of custom code? I don't like it, well I don't like custom code at all, makes it more difficult to update ffmpeg and it's ugly :p
Wait a sec. This custom code is only to make libavcodec "compatible" for MSVC, right? If yes, au revoir "custom code"!
If somebody needs a MSVC debug/release version of libavcodec, he or she can figure out how to circumvent those compile errors temporarily, IMO.
As for the 2nd error, I'd change it to (if I had to):
int tmp_array[] = { 4096, 2736, 2048, 1640 };
avctx->frame_size = tmp_array[index];
There's probably a more elegant solution but as I said, "custom code" turns me personally into an angry Bruce Banner... :D
tetsuo55
23rd September 2010, 11:49
Maybe you could add the MSVC patches as IFDEF, and clearly mark it as ffdshow custom code for msvc.
That way it should be easier to keep in sync.
That said, changes like these might be accepted upstream if they make sense on GCC too.
clsid
23rd September 2010, 17:17
In other places this is used for C99 code that MSVC doesn't like:
#if __STDC_VERSION__ >= 199901L
// original code
#else
// MSVC code
#endif
STaRGaZeR
23rd September 2010, 18:03
Wait a sec. This custom code is only to make libavcodec "compatible" for MSVC, right? If yes, au revoir "custom code"!
If somebody needs a MSVC debug/release version of libavcodec, he or she can figure out how to circumvent those compile errors temporarily, IMO.
Yep. But this custom code (the .something stuff MSVC doesn't support like in here (http://ffdshow-tryout.svn.sourceforge.net/viewvc/ffdshow-tryout/trunk/src/ffmpeg/libavcodec/aacdec.c?r1=3585&r2=3584&pathrev=3585)) is already in basically all decoders, making copy/paste updates impossible aka making ffmpeg updates a pain in the ass. I think nobody has compiled libavcodec with MSVC in a loooong time, otherwise this would be fixed. What to do?
tetsuo55
23rd September 2010, 18:51
We compile libavcodec with msvc all the time over at MPC-HC, maybe you could take a look at the code?
clsid
23rd September 2010, 21:40
The errors are only in the recently added AAC decoder. I don't mind any extra custom code to allow MSVC compilation.
STaRGaZeR
24th September 2010, 16:05
There are also unresolved externals because libavutil (cpu.c) is outdated, because it can't find log2f and exp2f, etc. Have you considered creating a new folder (like libavcodec_msvc or something like that) with all these changes to compile libavcodec with MSVC and keep the normal one clear?
clsid
24th September 2010, 19:44
That would mean extra work. Getting it to compile with MSVC is not a high priority right now. It will get fixed eventually.
STaRGaZeR
25th September 2010, 11:49
Yeah, also it wouldn't make much sense. Now that I've taken a closer look at it there's custom code everywhere, not related to MSVC compilation.
_xxl
25th September 2010, 16:57
Yeah, also it wouldn't make much sense. Now that I've taken a closer look at it there's custom code everywhere, not related to MSVC compilation.
That is true. FFdshow has a lot of custom code...:)
Sebastiii
25th September 2010, 18:29
hi STaRGaZeR,
I try to compil 3600 but i have an error, i build with the .bat (build_x86.bat), i go to try with the sln.
Thanks,
Seb.
Ps: i didn't know if it's 3600 that break the compil.
It's the innosetup, if i compil the .exe with .iss it's ok :)
Ok found it lol : in batch @cd bin\distrib\innosetup but for me it's @cd bin\distrib
Edit : Thanks for the fix :)
STaRGaZeR
25th September 2010, 19:32
Fixed :)
rica
25th September 2010, 22:38
Guys, i must have missed something.
ffdshow 3574 decodes DTSHD-MA; downsamples 96 to 48 but not 24 to 16 with libdts.
Is it correct?
nevcairiel
25th September 2010, 23:07
All it decodes is dts core, which only contains 48Khz samples. But at least it provides full bit depth in decoding, afaik (remember, lossy formats don't have a pre-defined bit depth, you should decode with as much precision as you can)
rica
25th September 2010, 23:28
Yes, that is still what it's doing. Thx.
Ap3 n1nja
26th September 2010, 05:12
Hi, I not sure if this goes here but there seems to be a certain problem getting ffdshow's AAC libavcodec to work with the KMPlayer. I think the problem might be with the internal KMP MKV Splitter since I tested it with MatroskaSplitter.ax and its internal MOV/MP4 splitter and it worked fine.
Versions Used:
KMPlayer 3.0.0.1438
ffdshow rev3600 20100925 xhmikosr icl11
dann23
26th September 2010, 05:43
I have a problem when using LAVFSplitter. External subtitles don't work when using ffdshow dxva and when I use normal ffdshow I can't choose beetwen external subtitles present in the same folder as the movie(one subtitles is choosen but I can't choose another one. I have no context menu present). I also posted in LAVFSplitter's thread but nevcairiel said that it's possible that ffdshows is the culprit.
Also is good to know that I'm using wmp11.
dansrfe
26th September 2010, 09:07
I'm still having major problems with .ASS or .SSA karoke subtitle tags showing up all over the place.
Mr. Monte
26th September 2010, 12:56
I just recently installed FFDSHOW 3572_20100913_clsid. I was using AVStoDVD for converting my MKV's to DVD5's. All of a sudden I was getting AVS script errors. Using graphedit, I was able to determine that FFDSHOW was no longer decoding DTS or AC3 audio. I looked at the configuration and libdts and liba52 is selected. Installing AC3Filter fixed the isues.
Is there anyway to determine why FFDSHOW stopped working with DTS & AC3 (works fine with AAC). Moreover, how to restore it?
TIA
leeperry
26th September 2010, 17:39
To all, testing time again! I've enabled libavcodec's floating point MP1,2,3 decoder instead of the integer one. It should play everything the old one des, but test it and report your findings.
Build: http://www.mediafire.com/?k8y1fakk2ayqoie
cool! if you could do the same for AC3/DTS, this would be really fantastic :)
Keiyakusha
26th September 2010, 19:56
STaRGaZeR
Just a little suggestion. I never saw floating-point build yet but if it will work, could you please keep both variants (16 and 32 bit) if 32bit any slower? Maybe it will be possible to add switch "libavcodec (16bit)" and "libavcodec (32bit)" like it is done for h264 in case of libavcodec and ffmpeg-mt. Also if you know better solution - just skip this post. Thanks.
leeperry
27th September 2010, 00:18
I never saw floating-point build yet but if it will work
the only reason to go 32fp for lossy audio is this: http://mp3decoders.mp3-tech.org/24bit.html
it provides a more accurate decoding w/ less rounding errors, very important if you down-upmix/resample/post-process/use Reclock. There isn't a single good reason to decode lossy audio to 16int.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.