View Full Version : ffdshow tryouts project: Discussion & Development
taklubaba
4th February 2008, 17:37
"The files libavcodec.dll and libmplayer.dll must be present in the same directory as ffdshow.ax."
Thanks CLSID.
Where can I get the dlls / source for building the dlls on VC++?
Will adding the dlls in the same directory as ffdshow.ax solve the issue?
Leak
4th February 2008, 18:24
Where can I get the dlls / source for building the dlls on VC++?
If you've checked out the whole ffdshow-tryout trunk you already have the source; check your src/ffmpeg and src/mplayer directories.
Dunno if they're built with the MSVC project files as IIRC (someone please correct me if I'm wrong) the inline assembly is GCC only so you'll get a build lacking all MMX/SSE code when you compile it with MSVC.
The good news is that GCC is free... :) You can either install cygwin and use it's gcc 3.3 that's a tad rusty, or you can get a newer mingw build here (http://forum.doom9.org/showthread.php?t=108215).
Will adding the dlls in the same directory as ffdshow.ax solve the issue?
Those two DLLs contain most codecs and color conversion code, which means without them ffdshow can hardly connect to anything - so I'd say that's a yes.
np: Pole - Hafen (2)
leeperry
4th February 2008, 23:59
ok forget about supereq, I've found THE ultimage winamp plugin :D
http://www.winamp.com/plugins/details/79374
it works perfectly in ffdshow audio, but each time I open a new file in MPC HC or mplayer2.exe, it crashes the player :(
is it possible to make the "ffdshow audio filter" not crash when you open a new file and have a winamp2 plugin enabled ? :(
and the ability to keep the plugin GUI hidden would also be AWESOME, like in winamp.
Thanks,
Kado
5th February 2008, 04:20
@leeperry
I can reproduce that, when track changes it triggers the cpu "Data Execution Prevention" and crashes mpc. That happens only for iZotope Ozone (I have the full version).
I use enhancer anyway!:D
The ability to hide the plugin gui depends on the plug in, because ffdshow invokes the plug in every time a track changes iZotope will appear, that also happens if you close and open Winamp using iZotope.
For enhancer the window will remain hidden but mpc will lose focus to that hidden window in track changes.
swalker
5th February 2008, 09:27
Should ffdshow default to connecting to WaveOut for only S/PDIF output because of the known problems when connecting to DirectSound?
http://forum.videolan.org/viewtopic.php?t=31776 - S/PDIF finally working like a charm!
http://forums.snapstream.com/vb/showthread.php?t=33014 - SPDIF cutting out
http://forum.inmatrix.com/index.php?showtopic=323 - DirectSound vs WaveOut
leeperry
5th February 2008, 10:02
@leeperry
I can reproduce that, when track changes it triggers the cpu "Data Execution Prevention" and crashes mpc. That happens only for iZotope Ozone (I have the full version).
I use enhancer anyway!:D
DFX you mean ? it's quite OK, but I prefer the "tube" sound of Ozone :D
and I also love the sound of the MPC mp3 decoder, so do I have any other alternative than MPC HC ? :(
I've written about this issue to the izotope tech support, but Ozone was coded in 2001.....I don't expect miracles...
haruhiko_yamagata : is there a way you could make ffdshow audio shutdown Ozone before it triggers the cpu "Data Execution Prevention" when a track change occur ?
..so it doesn't crash the player ?
also, I would guess that some argument to the winamp plugin would let it hide the GUI....when switching to new files at least ?!
..but if it didn't crash the player that'd already be too awesome!!!! :D
taklubaba
5th February 2008, 13:30
"If you've checked out the whole ffdshow-tryout trunk you already have the source; check your src/ffmpeg and src/mplayer directories."
Thank You Leak.
I have found these directories and have managed to build the mplayer in Visual Studio and get the libmplayer.dll.
I am trying to build the libavcodec project on Visual Studio but get errors like,
syntax error : identifier 'uint_fast8_t' in vorbis.h
error C2065: 'M_E' : undeclared identifier in opt.c
'int_fast32_t' : undeclared identifier in jfdctint.c
DCTELEM' : illegal use of this type as an expression in jfdctint.c
Regarding uint_fast8_t, on searching for it, I came to know that it is declared in inttypes.h. But I cannot find this header in the ffdshow code.
Are they declared in any other file?
Once I am able to get the libavcodec.dll, I will try to insert in GraphEdit. Let see how it goes.
Thanks,
Taklu.
clsid
5th February 2008, 16:14
Just download the ffdshow installer from the sourceforge website. That includes all the files you need.
clsid
5th February 2008, 16:43
A few assembly code additions/changes have been made in libavcodec in the past few days.
These changes should give about 5% performance improvement on an Intel Core2 when decoding H.264 video.
Revision 1846 includes all the changes. Everyone please test.
fastplayer
5th February 2008, 17:29
These changes should give about 5% performance improvement on an Intel Core2 when decoding H.264 video.
Just to avoid confusion: the performance improvements also affect other MMX/SSE2-capable CPUs.
Core2 has gotten some special treatment though by using SSSE3 instructions to improve H.264's motion compensation.
leeperry
5th February 2008, 21:15
guys, I'm using this DirectX plugin wrapper to winamp2 :
http://pagesperso-orange.fr/vb-audio/us/products/dxrack/dxrack.htm
the winamp version is freeware :
http://vincent.burel.free.fr/download/ffx4WinAmp_FullDemo.zip
I use it with the Ozone3 DX plugin.....but when I play new tracks, MPC HC tells me "Failed to query the needed interfaces for playback"
and mplayer2.exe crashes.
what gives ?
it seems that the ffdshow audio filter doesn't succeed to close the winamp plugins in a clean and safe way :(
edit : what is really *WEIRD* is that if I click on "configure" on the winamp DSP section of the ffdshow audio settings, then I can open new files as much as I want ?!! it doesn't crash anymore but the CPU utilization goes from 10% to 60/70% after I open 2/3 files in a row :eek:
problem is easy to reproduce with OzoneMP :
http://www.winamp.com/plugins/details/79374
or the DX wrapper above.
when I open a new track, it will open a new winamp plugin window, and everything works fine :)
so maybe a bug ?!
wyrd
5th February 2008, 21:40
A few assembly code additions/changes have been made in libavcodec in the past few days.
These changes should give about 5% performance improvement on an Intel Core2 when decoding H.264 video.
Revision 1846 includes all the changes. Everyone please test.
Hi, clsid
Thank you for your efforts.
I've tried beta4a,rev1827,rev1839 and rev1846 in timecodec.
Results (http://tirnanog.fate.jp/tmp/comparison/ffdshow_comparison_clsid_rev1846.txt)
test files (http://tirnanog.fate.jp/tmp/mp4_test/)
in C2D(E6600@2.4),XPsp2(32bit)
Regards
cc979
5th February 2008, 23:10
"I have found these directories and have managed to build the mplayer in Visual Studio and get the libmplayer.dll.
I am trying to build the libavcodec project on Visual Studio but get errors like
i think libavcodec compiles only with gcc 4.0.4 or the patched gcc 4.2.1
fastplayer
5th February 2008, 23:16
Thanks for the tests, wyrd! :)
I put the results of 2 tested trailers into a chart:
http://img2.freeimagehosting.net/uploads/939a41d37c.png
clsid
5th February 2008, 23:33
i think libavcodec compiles only with gcc 4.0.4 or the patched gcc 4.2.1
It can be compiled with Visual Studio. (assembly stuff won't be included in that case)
Inventive Software
6th February 2008, 03:55
Thanks for the tests, wyrd! :)
I put the results of 2 tested trailers into a chart:
http://img2.freeimagehosting.net/uploads/939a41d37c.png
That's some nice increasing over beta4a, and a small (1% and 2.2% respectively) but significant increase over rev1826. :)
haruhiko_yamagata
6th February 2008, 11:15
Hi,
I have built ffdshow source (ffdshow_beta1_20061211) on Microsoft Visual Studio 2005.You may have some compilation errors if you try to compile beta1-libavcodec by MSVC.
Please install tortoisesvn or your favorite svn client and check out the latest svn.
haruhiko_yamagata
6th February 2008, 11:22
@leeperry,swalker
I don't have time now. Please wait.
chros
6th February 2008, 13:41
That's some nice increasing over beta4a, and a small (1% and 2.2% respectively) but significant increase over rev1826. :)
Woow, thank you guys !!!
I hope I can get some improvement on my AthlonX2 too (I was using xll's 1738 build, which already had the multicore support) ... :)
taklubaba
6th February 2008, 17:10
Thanks to Leak, clsid, cc979, haruhiko_yamagata.
I have downloaded the ffdshow_beta3_rev1324_20071127 source and managed to build ffdshow, libavcodec and mplayer on Visual Studio 2005.
The ffdshow video encoder and decoder filter can now be inserted into the Graph Edit.
BUT :), there is are some problems.
1. When i check the property pages of ffdshow video decoder it shows that MJPEG, other MJPEG, H246/AVC, Raw Video formats are disabled. How do I enable them in the code?
2. Every time I run the graph edit from ffdshow project in Visual Studio and try to connect a yuv input file or some filter to the ffdshow encoder filter, the graph edit hangs for a long time and
then I get a message in Visual Studio saying
Unhandled exception at 0x01c41b02 in graphedt.exe:0xC0000005:Access violation reading location
0x00000040
The statement causing the problem is
mov eax,dword ptr [edi+40h]
Value of eax and edi is 0. The call stack shows this statement to be in the vp6dec.ax.
What could the problem be? Is it stack overflow?
3. Now if I directly open the graph edit (not through the ffdshow project in Visual Studio) and try to connect a yuv input file to the ffdshow encoder the graph edit again takes a long time before throwing out the following error messages
ASSERT Failed: graphedt.exe - Application Error
The instruction at "0x7482a522" referenced memory at "0x0c8e4cac". This memory could not be "read"
The instruction at "0x74829ea1" referenced memory at "0x0c8e4e94". This memory could not be "read"
Has anyone faced the above problems? Please suggest how to go about solving this in Visual Studio.
I am using the source code because I want to use the MJPEG part of the ffdshow code for an application.
Thanks,
Taklu.
clsid
6th February 2008, 17:25
The settings for which codecs are enabled is stored in the registry (HKCU\Software\GNU\ffdshow).
Why are you using an old version of the source code? If you install TortoiseSVN, then you can check out the lastest code from the SVN repository.
_xxl
6th February 2008, 17:51
http://img147.imagevenue.com/loc1070/th_16102_Capture_122_1070lo.jpg (http://img147.imagevenue.com/img.php?image=16102_Capture_122_1070lo.jpg)
Why is 250 mb ram used with x264 720p mkv samples?
CPU AMD XP 2000+, MPC rev 36 (internal mkv splitter) and ffdshow 1840.Only subtitles filter is active.Frames are dropped, because this cpu can't handle 720p.
clsid
6th February 2008, 18:13
It uses only 40MB RAM here.
chros
6th February 2008, 23:36
Here, it's 65 MB with a 1 hour 2GB 1280x720 x264 encode !
What is your renderer (mine is Haali's)?
Perhaps, the queueing feature of ffdshow is the cause ?
Delerue
7th February 2008, 03:09
It uses only 40MB RAM here.
Confirmed. Build 1846 + MPC (your lastest build) + VMR7 Windowed.
_xxl
7th February 2008, 08:32
For an unknown reason mpc rev 36 compiled by me is using 250mb.
Clsid version doesn't have this issue.Dir mpc/res/web is missing from svn?Can somebody confirm?I used web dir from original project.
clsid
7th February 2008, 11:54
Web dir should be fixed now. I had to delete part of my local repository, because that somehow erroneously marked it as committed files (even allowing me to delete/restore them).
taklubaba
7th February 2008, 16:53
Thanks clsid.
I have tried using the TortoiseSVN to check out the latest code from the SVN repo.
But TortoiseSVN gives the following error message
Error: PROPFIND request failed on '/viewvc/ffdshow-tryout/trunk'
Error: PROPFIND of '/viewvc/ffdshow-tryout/trunk': could not connect to server (http://ffdshow-tryout.svn.sourceforge.net)
Am I missing something?
Eragon4ever
7th February 2008, 16:58
Use this link:
https://ffdshow-tryout.svn.sourceforge.net/svnroot/ffdshow-tryout
taklubaba
7th February 2008, 17:08
Eragon4ever,
It doesn't succeed.
I get the message
Error * PROPFIND request failed on '/svnroot/ffdshow-tryout' PROPFIND of '/svnroot/ffdshow-tryout': could not connect to server (https://ffdshow-tryout.svn.sourceforge.net)
Does it matter, if I am behind a proxy or firewall?
Is there any file where in I should mention the proxy address?
Eragon4ever
7th February 2008, 17:15
It seems to matter... take a look at Settings -> Network. That should help.
Joniii
7th February 2008, 20:36
What is the difference with libavcodec and wmv9 in VC1 and libavcodec and libmpeg2 in Mpeg-2 settings?
clsid
7th February 2008, 21:53
They are all different decoders.
Leak
7th February 2008, 21:55
What is the difference with libavcodec and wmv9 in VC1 and libavcodec and libmpeg2 in Mpeg-2 settings?
"libavcodec" is a decoding library for almost all file formats, as you can see from the fact that it's an option for almost every format supported by ffdshow. It's what mplayer, xine and several other players use, and ffdshow started out as "just" a DirectShow wrapper around it.
"wmv9" is using Microsoft's WMV decoding libraries that are already installed on your system.
"libmpeg2" is an MPEG2-decoding library that does only MPEG1/2, i.e. it's an alternative to libavcodec that in my experience works better with decoding DVDs.
np: Proem - Live @ Amoda Austin 03-12-2002 (Merck Fragments)
oddball
8th February 2008, 12:25
Not sure if already mentioned. VP6 decoding has a major problem. See screenshot. It plays like that for a few seconds then crashes. Does not matter which player I use (I tried about 5 different players).
Disabling it in ffdshow and using the default codec enabled proper playback.
Using ffdshow_rev1850_20080206_clsid_sse_icl10.exe but have not tried other builds.
fastplayer
8th February 2008, 12:54
Pics are worthless for the devs. Sample, please! :)
georgevalkov
8th February 2008, 13:45
I tried to encode a TV show to H264 using ffdshow,
but the output does not look properly. No errors are
reported in the player, but the image looks strange
and messed up. I tried mplayer.exe and directshow,
both same results.
Input filtering may be disabled or enabled, the same
problem exist either way, so it is not related to it.
Also when I try to stop or abort the encoding process,
the application will crash in the debugger
(Visual Studio 2008 beta 2). I tested VirtualDubMod
and graphedit, both produce same results and both
crash on aboort.
Versions tested to have the H264 encoding bug:
ffdshow-rev1846_20080205_clsid.exe
ffdshow-rev1850_20080206_clsid_sse_icl10.exe
Versions tested to be free of the bug and work
properly with the same configuration:
ffdshow-rev1798_20080119_clsid_sse_icl10.exe
and older.
This is the registry configuration of my computer:
http://gfc.my.contact.bg/tests/2008-02-08_HKCU_ffdshow.reg.7z
Please fix the problem! :thanks:
George Valkov
Please have a look at the screen-shot:
http://gfc.my.contact.bg/tests/H264-bug-FFDShow.png
clsid
8th February 2008, 13:59
My latest builds do not contain the x264 encoder (because x264VFW is preferred over it). So you possibly have an old version of the lib installed. Uninstall ffdshow and then re-install it.
georgevalkov
8th February 2008, 16:54
My latest builds do not contain the x264 encoder (because x264VFW is preferred over it). So you possibly have an old version of the lib installed. Uninstall ffdshow and then re-install it.
Okay, I can understand that VFW support for H264 is dropped, but FFDShow is a DirectShow filter. I don't see why would you remove the H264 encoder?
You can alert the user that H264 may not work good inside AVI, but VFW and AVI are not the only option. For example:
One can feed the encoder input directly from some DirectShow video decoder; there are still two reasonable ways for using the encoded H264 output, that does not relay on VFW.
~ 1st one is to connect to a MKV or a MP4 multiplexer and file writer. That way, the multiplexer filter will take care to generate a valid container for the H264 stream.
~ 2nd option is to set the FFDShow encoder to write a raw.264 file, that can be remuxed later to MP4 or MKV. The encoder output pin can be connected to Null renderer.
Both cases have the advantage of allowing the user to activate the built-in input filtering that FFDShow offers. So the user can cut|arrange the scenes, apply filtering and encode directly, all in 1 pass. Another advantage is that the RAW H264 output file stream produced by the FFDShow encoder can be remuxed with MP4box.exe on the fly during encoding, and the results can be previewed, without interrupting the process.
In my personal experience, I once took an MPEG file with variable frame rate (starts with 29.97 and changes to 23.97 after). This would usually break the A-V sync if VFW is used, but on the other hand, using graphedit and FFDShow to encode a H264 stream and feed the Haali Matroska Muxer, produced a valid MKV stream, with audio and video in sync. It plays just like the original MPEG file: (starts with 29.97 and changes to 23.97 after).
CLSID, please do not remove this great functionality. If anyone does not like it, that's fine, but still there are many people like me, that love it and use it every day!
:thanks:
George Valkov
oddball
8th February 2008, 17:52
Pics are worthless for the devs. Sample, please! :)
Sorry. No can do. It's a viral video preview I am not allowed to release to public yet.
clsid
8th February 2008, 17:58
And it is probably a bug in libavcodec. So there is not much we can do about it.
Delerue
8th February 2008, 21:39
Today I tried to encode a xVid file with x264 using VirtualDub 1.6.19 + FFDShow 1850, but the results were not good. As you can see, the original xVid has more red, and less green than the encoded x264. Using AutoMKV the x264 encode is fine. The samples:
http://www.zshare.net/download/73239907607157/ (8.5 MB)
I used 'one pass - quality' with quality set to 65.
leeperry
8th February 2008, 23:26
@leeperry,swalker
I don't have time now. Please wait.
ok cool, no problem :)
actually, I've updated my report about the winamp2 plugin support here :
http://forum.doom9.org/showpost.php?p=1096605&postcount=3111
basically it's giving audio jitter after 15 mins, and there's a bug that crashes the player when you open new files.
:thanks: for your help!
Jeremy Duncan
9th February 2008, 12:37
To the developers, Clsid, XXL, Harahiko, and Leak.
I ask, is all the major development done and now your just working on bugs and stability?
And I wanted to tell you about a bug for about a year now, but never bothered.
In the install, when it asks you what programs for audio and video.
I select mpc and a few other programs, about 4. And I get these popups asking me if I should use ffdshow on it or not. Things like my widgets and the ccc lcd overdrive.
But, if I don't pick specific programs during install, I never get these popups asking for permission.
heh heh. That bug has bothered my for maybe 2 years, I dunno. I forget now. :helpful:
clsid
9th February 2008, 13:42
That is not a bug. The installer lets you choose to enable the "whitelist" or not. If enabled it will show a prompt whenever an unknown application tries to use ffdshow.
You can't select specific applications from the list. The list that is shown is the entire whitelist.
fastplayer
9th February 2008, 13:51
You can't select specific applications from the list. The list that is shown is the entire whitelist.
Maybe someone could make the list "un-editable".
Or: Is that list even necessary? Does actually someone go through that list during setup? I think Joe Sixpack doesn't bother and just clicks "Next, Next, Next,...".
clsid
9th February 2008, 15:52
I agree, just a few checkboxes should be enough imo. However, Haruhiko preferred if the list itself is also displayed. I don't know if he still thinks that. He has to comment about that himself.
I would suggest two checkboxes (on the tasks page):
[ ] Restrict usage of the ffdshow filters to whitelisted applications
|--[ ]Show prompt for applications that are not on the whitelist/blacklist
fastplayer
9th February 2008, 16:06
I agree, just a few checkboxes should be enough imo. However, Haruhiko preferred if the list itself is also displayed. I don't know if he still thinks that. He has to comment about that himself.
Yes, he has put a lot of effort into that feature.
I would suggest two checkboxes (on the tasks page):
That's even better than what I had in mind: Putting both "Management of Comp..." into one page for both audio and video (separately configurable). That would reduce the number of steps to go through by 1. Your approach is better but it'll get crowded in the task page. Maybe it's time for a "recommended" and "custom" installation routine...
compunett
10th February 2008, 15:21
It might have been already answered, but i didnt found the post or the thread talking about it.
So the development of the EAC3 codec seems working and jruggle commited it in the mplayer repository. It seems the decode is called ffac3 (http://forum.doom9.org/showthread.php?p=1088908#post1088908) . I also saw that the open MLP / DTS TrueHD was commited in the repository.
However the latest installer of ffdshow don't show any information on them, and of course ffdshow doesn't decode them.
Is there a still some work to do on this matter, either on ffdshow, on mpc, or matroska splitter. (As they are part of my current configuration).
tia for your information. :)
Btw I express my utmost consideration to your work that has already been done, it's a fantastic work, credits goes as well to the mplayer team ;)
clsid
10th February 2008, 16:28
No work is being done on it. We use the decoding code from FFmpeg, and no EAC3 decoder has been committed to that repository yet.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.