View Full Version : ffdshow tryouts project: Discussion & Development
Chainmax
15th October 2007, 23:23
I recently was made aware that ffmpeg can now decode DXA, is it able to encode to that format as well? If not, when would you expect it to be able to?
Jeremy Duncan
15th October 2007, 23:28
The DTS doesn't work on AC3 output using these settings:
Link (http://forum.doom9.org/showthread.php?t=130767)
Any suggestions ?
This is using FFDshow _XXL 1524
Somebody else reported this, I have no way of testing this.
It works using 24 bit output though
clsid
15th October 2007, 23:31
I recently was made aware that ffmpeg can now decode DXA, is it able to encode to that format as well? If not, when would you expect it to be able to?
This thread is not about ffmpeg.
ffdshow currently does not support for neither decoding nor encoding of DXA.
clsid
15th October 2007, 23:32
Is there anyway you can force Vista Media Center (windows media player 11) to use ffdshow on mp3-playback?
ffdshow takes care of mp3 encoded audio in video containers. But I would also like to use it on straight .mp3 audio files.
WMP and MCE don't use DirectShow for .mp3 playback anymore, so it is not possible to use ffdshow.
thuan
16th October 2007, 04:54
Thank you, yamagata-san for implementing the Seb's color level filter. I didn't have to use it till I buy an ATI HD2400XT this morning. Using it with VMR9 (either windowed or renderless) and non-DXVA (yes with DXVA decoder like Cyberlink the color is ok) decoder I have washed out video. Now I have to either use the level filter with VMR9 or use Haali renderer (or use ffdshow's YCbCr <-> RGB but I don't like it as it use more CPU). The funny thing is all onboard graphic cards I have encountered all output the right color level. Wonder when they'll get it right?
rickardk
16th October 2007, 11:31
WMP and MCE don't use DirectShow for .mp3 playback anymore, so it is not possible to use ffdshow.
No way to force them to use DirectShow?
haruhiko_yamagata
16th October 2007, 13:54
The problem is that ffdshow sees the lpcm in my ts-files (haali media splitter) as uncompressed. And you can't set decoder match on the preset auto load page to uncompressed. Any solution to this?Oh, that's what I tried yesterday. Uncompressed and LPCM cannot be set separately. I found another bug, "on sampling frequency match" doesn't seem to work.
haruhiko_yamagata
16th October 2007, 13:56
I'll add channel remapping code in the next release, no need to add special cases for now.
It's a good news. Thank you for your work.
clsid
16th October 2007, 16:51
No way to force them to use DirectShow?
Not that I know of. Otherwise I would have already mentioned it.
Daodan
16th October 2007, 18:34
I tested latest builds by xxl to check how much improvement is there in multithreaded h.264 decoding (tried on sliced and nonsliced). And it doesn't look like any.
Is the only mt version the one xxl posted some pages back, or all his newer builds have that, as I'm confused right now...
Thanks.
TheShadowRunner
16th October 2007, 20:57
@TheShadowRunner
After some tests here's my conclusions:
with cyberlink's both the specified and achieved frame rates are 15fps and no shuttering (buffers totally used)
with coreavc v1.5 frame rates are at 30fps (buffers totally used)
with ffdshow the specified frame rate is 30fps but at some stages the video drops to 15 frames with some stuttering but not frozen frames (only 3 of 32 buffers are used probably because it does not have enough speed to keep them fully used)
cpu usage goes from 30 to 65% with ffdshow/cyberlink and 30 to 85% with coreavc.
I changed the file termination from mov to mp4 to use haali splitter.
you can see additional av info from the haali osd if you use the haali splitter and renderer.
used MPC HC 1.0.10.0, latest haali, ffdshow 1485(multi-core patched)/1515, coreavc1.5,cyberlink h264 decoder. Pentium D 3.6GHz/6800gs 163.71
Kado, thank you very much for testing.
It shows that indeed there is a bug in ffdshow & h264 imo. (it's not using all the buffers, all the time, as it should??)
I'm experiencing the same problem with another MKV
filename: Freedom_Ep1_(2006)_[720p,HDDVD,x264,DTS]
At around 1 minute during the opening, huge stuttering or frame freezes with ffdshow.
Cyberlink in soft mode and coreavc are as smooth as can be on that sequence.
(using revision 1530, "queue" is disabled, "drop frame on delay" and skip h264 deblocking on delay" enabled or disabled don't seem to make any difference). CPU used max is 40% on my system during that sequence with ffdshow. (and with other filters that decode it smoothly btw)
It seems ffdshow is chocking on big bitrate jump or something..
See you,
TSR
Leak
16th October 2007, 23:14
another MKV
(unlicensed, so not warez don't worry)
You're kidding, right? No matter if something is licensed for some/your region or not, distributing content without the permission of the copyright holder is still 100% illegal.
np: The Orb - Ba'albeck (Orb Sessions Volume 2)
TheShadowRunner
16th October 2007, 23:21
well sorry then, i'll remove the link.
Since it's not licensed outside Japan, i thought it wouldn't be a problem.
See you,
TSR
honai
17th October 2007, 00:31
filename: Freedom_Ep1_(2006)_[720p,HDDVD,x264,DTS]
At around 1 minute during the opening, huge stuttering or frame freezes with ffdshow.
Cyberlink in soft mode and coreavc are as smooth as can be on that sequence.
(using revision 1530, "queue" is disabled, "drop frame on delay" and skip h264 deblocking on delay" enabled or disabled don't seem to make any difference). CPU used max is 40% on my system during that sequence with ffdshow. (and with other filters that decode it smoothly btw)
It seems ffdshow is chocking on big bitrate jump or something..
That could have something to do with the DTS track. It has been observed in the past that full-bitrate DTS at 1536kbps causes stuttering with certain decoders and movie players, and using AC3Filter set to pass-through usually solved the stuttering.
yesgrey
17th October 2007, 00:38
@haruhiko,
The custom matrix for YUV<->RGB conversion is not needed anymore. I realized in my thread it does not work as I intended to. When I update my thread about it I will let you know.
Thanks anyway. The current YUV<->RGB conversion as you implemented should be enough.
TheShadowRunner
17th October 2007, 01:07
That could have something to do with the DTS track. It has been observed in the past that full-bitrate DTS at 1536kbps causes stuttering with certain decoders and movie players, and using AC3Filter set to pass-through usually solved the stuttering.
Honai, thanks for your input.
I'm not sure the DTS stream is responsible as I use FFDshow Audio decoder set to "libdts" for all 3 tests.
(CoreAvc+libdts, Cyberlink+libdts, FFDhowVideo+libdts)
Only the test with h264 decoded by FFDshow has the issue.
See you,
TSR
Jeremy Duncan
17th October 2007, 01:16
TheShadowRunner,
I've had somebody post that they had problems with the dts in FFDshow audio codec as well.
Maybe something needs to be adjusted to allow for dts through ac3 ?
Looking at your post, the problem with dts playback stems from the FFDshow video codec.
Jeremy Duncan
17th October 2007, 01:33
* Start your AviSynth script with "#debug" as the first line, run DebugView (http://www.microsoft.com/technet/sysinternals/Miscellaneous/DebugView.mspx), then re-open MPC and play your DVD for a bit, use "Save as..." in DebugView to save it's log and mail it to me (leak (at) gmx (dot) at)
TheShadowRunner,
Can you please follow this suggestion from leak and post the results.
I would, but I can't since I don't have the equipment or knowhow as a result.
Just play the dts using the FFDshow audio and video codecs, the dts that has the problem, and run debug.
:thanks:
TheShadowRunner
17th October 2007, 01:56
TheShadowRunner,
Can you please follow this suggestion from leak and post the results.
I would, but I can't since I don't have the equipment or knowhow as a result.
Just play the dts using the FFDshow audio and video codecs, the dts that has the problem, and run debug.
:thanks:
hmm sorry Jeremy but
1. i don't use avisynth.
2. i don't use MPC
3. the source is not DVD
Besides my problem is not related to DTS, i don't think, but in the way ffdshow decodes h264.
o_O
See you,
TSR
Jeremy Duncan
17th October 2007, 02:09
TSR,
I see the problem you have is when you use dts in the ffdshow audio codec?
And when you use the ffdshow video codec, for h.264.
I have the same problem, but in the ffdshow video codec I use the mpeg2 dvd decoding.
Maybe the problem your seeing is related to the problem I'm seeing in some intrinsic way.
Ha ha ha.
I dunno.
TheShadowRunner
17th October 2007, 02:13
man, i dunno where you read that but no, my problem is NOT dts in ffdshow audio codec.
My problem is h264 stuttering with ffdshow video (when Cyberlink and Coreavc have no problems at all with the same h264 stream).
Sorry.
Later,
TSR
Jeremy Duncan
17th October 2007, 02:16
TSR,
You said you had dts set in the ffdshow audio codec.
This worked with the cyberlink video codec, the core avc video codec, but not the ffdshow video codec ?
I know somebody who is having trouble with the same combination of dts and the ffdshow audio and video codec.
Maybe there's a problem that can be fixed.
Chainmax
17th October 2007, 10:10
This thread is not about ffmpeg.
ffdshow currently does not support for neither decoding nor encoding of DXA.
I apologize and will ask in the correct thread.
Keepitsimple
17th October 2007, 10:14
I dont know if this is the right thread.
I have a 60 or 50hz projector. 24fps film isnt smooth. Is it possible to fix with ffdshow?
yesgrey
17th October 2007, 10:32
I dont know if this is the right thread.
I have a 60 or 50hz projector. 24fps film isnt smooth. Is it possible to fix with ffdshow?
With reclock you could fix it. It will accelerate the 24fps to 25fps and will resample the audio, to keep the pitch right.
Go here (http://reclock.free.fr/).
Use the 1.7 beta 4, is the best, but download the 1.6 to get the documentation.
If you need more help PM me. This is not the right thread for talking about reclock.
TheShadowRunner
17th October 2007, 10:34
keepitsimple, i don't think this is the right thread.
You want to look for a soft called "Reclock". (and pray your projector is able to display a multiple of 24hz (48hz, 72hz...) in order to have a judder-free playback.
See you,
TSR
edit: oh yesgrey answered in the meantime with the 25fps solution. ^^;
haruhiko_yamagata
17th October 2007, 12:09
It shows that indeed there is a bug in ffdshow & h264 imo. (it's not using all the buffers, all the time, as it should??)
I'm experiencing the same problem with another MKV
I'm not sure if this is a bug or not. At least this is a CPU usage problem. I guess the CPU usage simply come from high bit rate of the scene. I enabled queue, set queueCount (registry) 100, VMR7-YV12. Enabled OSD "Video delay" & "Queued samples". No delay with the effect of queue. Core2duo E6700.
The file is still too easy to find. If you want to reprot this kind of sample, please use PM.
TheShadowRunner
17th October 2007, 12:53
Haruhiko, thank you for testing.
Since the CPU isn't maxed out when queue is disabled, isn't this considered as a bug?
Shouldn't ffdshow, like CoreAVC and Cyberlink, play the sequence just fine WITHOUT the need for Queue to be enabled? (since CPU isn't even near maxed out)
This file exhibits the same problem:
http://images.apple.com/movies/us/hd_gallery/gl1800/1080p/bbc-japan_1080p.mov
(this one is 100% OK i hope ^^)
Who is developing the h.264 portion of ffdshow?
Maybe I can report the problem to them?
See you,
TSR
clsid
17th October 2007, 13:06
The libavcodec code is developed by FFmpeg.
But before you report a bug to them you should first verify whether the same problem also occurs with FFplay.
Here are some win32 FFplay builds:
http://ffdshow.faireal.net/mirror/ffmpeg/
(unfortunely, these do not yet contain the new H.264 code)
haruhiko_yamagata
17th October 2007, 13:19
Thank you, yamagata-san for implementing the Seb's color level filter. I didn't have to use it till I buy an ATI HD2400XT this morning. Using it with VMR9 (either windowed or renderless) and non-DXVA (yes with DXVA decoder like Cyberlink the color is ok) decoder I have washed out video. Now I have to either use the level filter with VMR9 or use Haali renderer (or use ffdshow's YCbCr <-> RGB but I don't like it as it use more CPU). The funny thing is all onboard graphic cards I have encountered all output the right color level. Wonder when they'll get it right?I guess the DXVA filters set color space info through DXVA-API. But I don't know why ATI and nVidia use full range by default.
haruhiko_yamagata
17th October 2007, 13:24
Haruhiko, thank you for testing.
Since the CPU isn't maxed out when queue is disabled, isn't this considered as a bug?
Shouldn't ffdshow, like CoreAVC and Cyberlink, play the sequence just fine WITHOUT the need for Queue to be enabled? (since CPU isn't even near maxed out)
This file exhibits the same problem:
http://images.apple.com/movies/us/hd_gallery/gl1800/1080p/bbc-japan_1080p.mov
(this one is 100% OK i hope ^^)
That one is OK :).
One core is maxed out for some (probably high bit rate) scene. Use windows built-in task manager and increase the refresh rate.
CoreAVC also has high CPU usage for the scene ffdshow gets behind, so it's not a bug.
haruhiko_yamagata
17th October 2007, 14:34
I'm stuck fast to implementing 7.1ch HRTF (mixer-headphone). I've managed to avoid crashing by dropping side channels.
I need data for side channels, but because I don't know math, I cannot do this.
If anyone is interestead, please help.
How to generate these data:
1. You need the MIT Media Lab's KEMAR data, read it into an software
capable of signal/time series analysis (like Mathematica, Matlab,
...)
2. Construct an equalizing FIR inverse filter by calculating the
transfer function of the front, same side impulse response, then
take 1 over the absolute magnitude.
3. Cut the poles in the inverse filter's transfer function
specification by limiting the amplification to 2.5 (note, this
number assumes that you have correct signal processing
normalization of the Fourier transform).
4. Design the FIR inverse filter by calculating the inverse Fourier
transform, then chopping the coefficients down to a reasonable
number (N = 15 is used here), apply the Kaiser-Bessel window (alpha
= 2 is used here). Note the objective is remove the color bias
only (as if you are using an equalizer), _not_ to do a full inverse
filtering. (Note: beta = pi*alpha in other notation.)
For N = 15, alpha = 2, you should get the following impulse
response:
0.001001558668605168, 0.00698457265741865, 0.040453643039829436,
0.012230541722147855, -0.11939760844854072, 0.16468099899755967,
-0.30297563073747436, 1.3140211791355982, -0.30297563073747436,
0.16468099899755967, -0.11939760844854072, 0.012230541722147855,
0.040453643039829436, 0.00698457265741865, 0.001001558668605168
5. Linearly convolve all KEMAR HRIR with this inverse filter.
6. Resample from 44.1 kHz sampling frequency to 48 kHz.
*/
/* Center front (-5 degree) - not 0 degree in order to create a clear
front image from a finite distance */
float cf_filt[128] = {
-0.00008638082319075036, 0.0003198059946385229,
-0.0005010631339162132, 0.0011424741331126876,
-0.001584220794688753, 0.001742715363246275,
...
clsid
17th October 2007, 15:19
@all, I would like to update the opening post. So if there are any known bugs (that have also been confirmed by others) that are not yet listed there, let me know.
@devs, if you have a ToDo list and want it to be listed in the opening post, let me know.
Keepitsimple
17th October 2007, 17:46
keepitsimple, i don't think this is the right thread.
You want to look for a soft called "Reclock". (and pray your projector is able to display a multiple of 24hz (48hz, 72hz...) in order to have a judder-free playback.
See you,
TSR
edit: oh yesgrey answered in the meantime with the 25fps solution. ^^;
Thank you TheShadowRunner and yesgrey3. I will check it out.
Kado
17th October 2007, 18:28
Regarding the h.264 shuttering... I have only tested with the bbc file and from my experience this is basically a speed issue.
My Netburst cpu just can't keep decoding fast enough with ffdshow, hence the buffers not totally used and the shuttering.
Cyberlink's decoder only outputs 15 frames anyway (from a video with 30 frames!).
Coreavc uses both cores and is faster than ffdshow even in single core cpus (I get about 90% total cpu utilization in the high bitrate parts and no shuttering).
For ffdshow since it's not fast enough, when the "heavy" parts come it will just drop frames.
It looks that you "Core2 people" don't have frame dropping so it's not a bug (right?).
@haruhiko_yamagata
"Mondai nai!" When I need (very rarely) those audio processing filters I use Winamp with Adapt-X plug-in (it does not work in ffdshow, I think it was blacklisted before because it crashed ffdshow) to load them into Winamp. :thanks:
haruhiko_yamagata
18th October 2007, 09:18
Back to ffdshow's HuffYUV:
According to my tests, used as converting video codec (without much pressure, "streamingly" called) it works fine.
What does not work reliably, is using the codec for capturing purposes (when timing matters). It might be too slow when there are more expensive tasks running, or there is a different calling technique. Probably the next frame already has to be encoded while the last frame is not yet finished.
I have no TV card here, I can only simulate it using a screen capturer (HyperCam or similar). More tests with matching equipment could be necessary.Confirmed. Sorry for late reply.
yesgrey
18th October 2007, 13:48
haruhiko,
You can see here (http://www.avsforum.com/avs-vb/showthread.php?t=912720) why the custom YUV<->RGB matrix is now useless for what I wanted. This kind of correction could be added to ffdshow, as another filter, but I believe the best and easiest way is doing it at the renderer level, because the shaders are better for that. Currently, it's limited to MPC and VMR9, but I will ask Haali if he could add it to his renderer to broaden player support...
Nicholi
19th October 2007, 01:25
@clsid
First reported by Leak here (http://forum.doom9.org/showpost.php?p=1044595&postcount=1959) and mostly confirmed by me here (http://forum.doom9.org/showpost.php?p=1045190&postcount=1966).
Has anyone noticed any weirdness when ffvfw/ffdshow is being used multiple times? And windows of nearly all applications suddenly start behaving strangely until you close everything using ffdshow?
LoRd_MuldeR
19th October 2007, 02:11
Just for notice:
The "VfW configuration" shortcut in Startmenu doesn't work on 64-Bit Windows XP.
I throws the following error message:
Error loading ff_vfw.dll
The specified module could not be found.
That's the following "target" obviously doesn't work:
C:\WINDOWS\system32\rundll32.exe ff_vfw.dll,configureVFW
Using the full path to the DLL it works:
C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\SysWOW64\ff_vfw.dll,configureVFW
Unfortunately it does not work that way:
C:\WINDOWS\system32\rundll32.exe %SYSDIR%\ff_vfw.dll,configureVFW
I don't know how to detect "C:\WINDOWS\SysWOW64" under x64 Windows, GetSystemDirectory() only returns "C:\WINDOWS\system32" ...
foxyshadis
19th October 2007, 03:30
This page (http://msdn2.microsoft.com/en-us/library/ms538044.aspx), under installation directory requirements, explains how.
Inventive Software
19th October 2007, 04:01
@LoRd_MuldeR: Dear God, I haven't seen that font since Win98! :D ;)
_xxl
19th October 2007, 08:14
Has anyone noticed any weirdness when ffvfw/ffdshow is being used multiple times? And windows of nearly all applications suddenly start behaving strangely until you close everything using ffdshow?
Can you please explain more?
clsid
19th October 2007, 10:40
Just for notice:
The "VfW configuration" shortcut in Startmenu doesn't work on 64-Bit Windows XP.
I throws the following error message:
Error loading ff_vfw.dll
The specified module could not be found.
That's the following "target" obviously doesn't work:
C:\WINDOWS\system32\rundll32.exe ff_vfw.dll,configureVFW
Using the full path to the DLL it works:
C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\SysWOW64\ff_vfw.dll,configureVFW
Unfortunately it does not work that way:
C:\WINDOWS\system32\rundll32.exe %SYSDIR%\ff_vfw.dll,configureVFW
I can fix this easily in the install script.
Can you check if the following also works correctly?
Target = C:\WINDOWS\system32\rundll32.exe ff_vfw.dll,configureVFW
Start in = C:\WINDOWS\SysWOW64
rickardk
19th October 2007, 12:36
I have a big problem here...
I have a couple of HD DVDs in ts.
When playing them back in Vista Media Center (or media player 11) with microsofts vc-1 decoder they are quite jerky.
When I play them back with PowerDVD everything is smooth.
Using ffdshow with either one of the two included decoders its jerky again.
In ffdshow it says that framerate is 29.97 but I'm quite sure it should be 23.976.
The movies are 23.976fps and my graphic card outputs 23.976 Hz. My Pioneer display takes the 23.976 Hz signal and triple it to ~72 Hz.
When playing back VC-1 from blu-rays in ts ffdshow shows 23.976.
Is there any solution for playing them back in their original framerate?
Daodan
19th October 2007, 12:44
That doesn't really sound like a ffdshow problem, but more like a splitter problem. Of course, the first question would be: how did those contents of the evo end up in .ts container? Maybe you actually muxed it wrong, at 29.97.
LoRd_MuldeR
19th October 2007, 13:12
I can fix this easily in the install script.
Can you check if the following also works correctly?
Target = C:\WINDOWS\system32\rundll32.exe ff_vfw.dll,configureVFW
Start in = C:\WINDOWS\SysWOW64
Yup, it does :)
BTW: Why is the "ff_vfw.dll" stored in the x64 system folder at all?
rickardk
19th October 2007, 13:40
That doesn't really sound like a ffdshow problem, but more like a splitter problem. Of course, the first question would be: how did those contents of the evo end up in .ts container? Maybe you actually muxed it wrong, at 29.97.
Both the evos and ts plays perfectly fine in PowerDVD.
But as I want my collection usable inside Vista Media Center I would love to see smooth playback with ffdshow.
LotharZ
19th October 2007, 15:32
When there will be a new binary file?
I want to test the vob/ssa fixes.
thx
clsid
19th October 2007, 16:12
Yup, it does :)
BTW: Why is the "ff_vfw.dll" stored in the x64 system folder at all?
SysWOW64 is actually the 32-bit system folder on 64-bit versions of Windows. The name is a bit confusing.
The regular system32 folder is the 64-bit system folder. It is still named system32 for backwards compatibility reasons.
LoRd_MuldeR
19th October 2007, 16:18
SysWOW64 is actually the 32-bit system folder on 64-bit versions of Windows. The name is a bit confusing.
The regular system32 folder is the 64-bit system folder. It is still named system32 for backwards compatibility reasons.
:eek:
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.