View Full Version : ffdshow tryouts project: Discussion & Development
Ryokurin
20th December 2007, 22:05
So how do these files work? And how do they work? These are to use the hardware acceleration built into our video cards correct? How will it compare to software like CoreAVC?
At least when it comes to hardware acceleration, the last time I used CoreAVC it was actually slower in hardware than using its software decoder.
EpheMeroN
20th December 2007, 22:52
After installation of the latest stable ffdshow tryout, I noticed it handles the video decoding for webcams w/ Windows Live Messenger. This is causing random crashes for the messenger. What format am I looking for in the config to disable ffdshow decoding?
clsid
20th December 2007, 22:57
Options -> DirectShow control
Add "msnmsgr.exe" to the blacklist.
Remove "msnmsgr.exe" from the whitelist.
haruhiko_yamagata
20th December 2007, 23:51
After installation of the latest stable ffdshow tryout, I noticed it handles the video decoding for webcams w/ Windows Live Messenger. This is causing random crashes for the messenger. What format am I looking for in the config to disable ffdshow decoding?Please install the latest Nightly build and try again. Rev 1687 fixes not only Windows Movie Maker.
Thunderbolt8
20th December 2007, 23:52
got another AVC sample where ffdshow libavcodec seems to have a problem. in seconds 1-5 you can see that the video is a bit off along a horizontal line, it doesnt really fit (well in every 2nd frame the picture is off there as it seems).
I included both, rawstream and .mkv remux. though the .mkv file is not taken from this exact piece of rawstream here, but cut from the complete .mkv I made from the complete rawstream, because the mux from this raw sample here results in mpc crashes when I try to open it (guess I hit some open frame or something like that, I cut with a hex editor).
I included both, because when trying to open the raw sample with mpc / ffdshow you wont be able to recognize anything like picture, the problem only becomes evident when opening the .mkv file with mpc / ffdshow. but coreavc gives a picture for both, the rawstram and the .mkv file and doesnt show the problem in either of them, so its basically to ensure that the problem is not caused by the demuxing of the rawfile or remuxing to .mkv process.
http://www.sendspace.com/file/ysw3qv
edit: is this problem also due because of those h264 things which are not yet implemented, or is this just a "normal bug" ?
haruhiko_yamagata
22nd December 2007, 02:04
@Thunderbolt8
The .mkv video plays fine for me.
Thunderbolt8
22nd December 2007, 10:01
with which version? im using xxl rev1703 and have those problems from seconds 1-5 of the sample
haruhiko_yamagata
22nd December 2007, 12:43
Oh, I see. Probably it is fixed at rev 1711.
Valeron
22nd December 2007, 17:41
kostya submitted the RV30/40 decoder core to ffmpeg recently, when will ffdshow get support of decoding those streams?
Thunderbolt8
22nd December 2007, 19:32
Oh, I see. Probably it is fixed at rev 1711.
it is, I dled xxl rev1716 and its fine now (and also another problem with another video is fixed, too). thanks!
clsid
22nd December 2007, 19:54
kostya submitted the RV30/40 decoder core to ffmpeg recently, when will ffdshow get support of decoding those streams?
The RV30/40 code in FFMPEG is still incomplete.
Blight
23rd December 2007, 15:11
I just came upon a weird issue,
It seems ffdshow is not accepting the "{6134706D-0000-0010-8000-00AA00389B71}" sub-type "mp4a" fourcc (no matching media type error) from the Nero MP4 splitter (tested with v7 of nero).
I dont think this is nero white/black listing filters as the gabest realaudio decoder does accept a connection and does decode the audio.
clsid
23rd December 2007, 15:33
I assume this is just plain AAC audio?
gordonwatts
24th December 2007, 06:39
Hi,
I've got a Sony SR7 which produces the .mts (or .m2ts) files. Using the latest version of ffdshow tryouts (rev 1716 by xxl) or beta4 does not work. But in a funny way.
First: I'm using Vista x32, 2 gig, old Pentium M 2GHz processor - so barely enough to keep up, probably. Also have the most recent version of the Haali splitter.
Tried in WMP11: The time line doesn't move at all. No CPU is being used; just sits forever. Icons for Haali splitter, ffdshow audio, and ffdshow video show up in the task bar. If I use the video codec config settings to disable the H264 decoding, then sound plays just fine.
Tried MPC. No sound at all (the sound options are all disabled in the menus). But video does play -- but only at half speed. The Haali splitter and ffdshow video icons show up in the sys tray.
Tried mplayer - the version released on 10/12. I get continuous errors: "PAFF interlacing not supported..." - I assume that means 10/12 was too early for the added PAFF support to make it - I'm not sure which of the codecs I should update to enable it (nor where to get the new codec).
A 60 MB test can be found here, if the problem isn't know:
http://d0.phys.washington.edu/~gwatts/00024.zip
I have not yet tried CoreAVC, but will later in the week.
Many thanks in advance,
Cheers,
Gordon.
haruhiko_yamagata
24th December 2007, 08:23
Hi,
I've got a Sony SR7 which produces the .mts (or .m2ts) files. Using the latest version of ffdshow tryouts (rev 1716 by xxl) or beta4 does not work. But in a funny way.
Beta4 and the latest build by clsid plays the video (no audio). My CPU (Core2duo 2.66GHz) can't catch up though. Here is where I want multithreading, but unfortunately xxl's rev 1703/1716 doesn't work. This is the first sample I have had problem that is xxl's build specific.
CoreAVC works with audio.
// EDIT
Audio plays with MPC's built-in splitter and libavcodec-H.264 decoder.
libavcodec debug output says "Interlaced pictures + spatial direct mode is not implemented".
thuan
24th December 2007, 10:26
Works fine with Nero 8 h264 decoder, too on my Core 2 e4300.
Thunderbolt8
24th December 2007, 12:10
Beta4 and the latest build by clsid plays the video (no audio). My CPU (Core2duo 2.66GHz) can't catch up though. Here is where I want multithreading, but unfortunately xxl's rev 1703/1716 doesn't work.
do you mean the multithreading support for 1716 xxl is broken? im also using this version atm and when I play avc stuff and check in task manager then the load is distributed evenly on both cores for me.
clsid
24th December 2007, 13:22
The multi-threading path that xxl uses does not work properly with PAFF interlacing. But PAFF is quite rare in H.264 files, so that shouldn't be a big problem.
haruhiko_yamagata
24th December 2007, 14:16
do you mean the multithreading support for 1716 xxl is broken? im also using this version atm and when I play avc stuff and check in task manager then the load is distributed evenly on both cores for me.libavcodec debug output says "Interlaced pictures + spatial direct mode is not implemented" for the file. So you're lucky if you get any pictures. We can't blame the multithreading patch in this case.
By the way, Haali's media splitter doesn't set any "Sync point" (= I-frame) information (IMediaSample::IsSyncPoint()) on the samples sent to ffdshow for the file.
On the other hand, the sample here (http://sourceforge.net/tracker/index.php?func=detail&aid=1842623&group_id=173941&atid=867360) have too many sync points. All the samples are labeled as sync point.
Current ffdshow's implementation depends on the sync point information that is attached to the samples. Splitters have to set this information.
Of course it is possible to know if the samples are I-frames after decoding. These two samples are suggesting that we have to reconsider current splitter dependent implementation.
Index: codecs/TvideoCodecLibavcodec.cpp
===================================================================
--- codecs/TvideoCodecLibavcodec.cpp (revision 1719)
+++ codecs/TvideoCodecLibavcodec.cpp (working copy)
@@ -321,7 +321,7 @@
}
HRESULT TvideoCodecLibavcodec::decompress(const unsigned char *src,size_t srcLen0,IMediaSample *pIn)
{
- if (codecId==CODEC_ID_H264 || codecId==CODEC_ID_FFV1) // libavcodec can crash or loop infinitely when first frame after seeking is not keyframe
+ if (/* codecId==CODEC_ID_H264 || */ codecId==CODEC_ID_FFV1) // libavcodec can crash or loop infinitely when first frame after seeking is not keyframe
if (!wasKey)
if (pIn && pIn->IsSyncPoint()==S_OK)
wasKey=true;
Index: ffmpeg/libavcodec/mpegvideo.c
===================================================================
--- ffmpeg/libavcodec/mpegvideo.c (revision 1719)
+++ ffmpeg/libavcodec/mpegvideo.c (working copy)
@@ -945,6 +945,8 @@
if(s->pict_type != I_TYPE && (s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL) && !s->dropable){
av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n");
+ if (s->codec_id == CODEC_ID_H264 || s->codec_id == CODEC_ID_FFV1)
+ return -1;
assert(s->pict_type != B_TYPE); //these should have been dropped if we don't have a reference
goto alloc;
}
This patch fixes both of the two files above. Is this safe to add?
gordonwatts
24th December 2007, 17:35
Beta4 and the latest build by clsid plays the video (no audio). My CPU (Core2duo 2.66GHz) can't catch up though. Here is where I want multithreading, but unfortunately xxl's rev 1703/1716 doesn't work. This is the first sample I have had problem that is xxl's build specific.
Shoot -- saw references earlier that said the multi-threaded build and PAFF encoding were not compatible. However, I am on a single core machine for now (traveling) and beta4, xxl, and cslid all behave the same with me.
BTW -- I do get audio, but not in MPC. In WMP11 the audio plays fine if I disable the H264 decoding in the ffdshow video codec config page.
Audio plays with MPC's built-in splitter and libavcodec-H.264 decoder.
libavcodec debug output says "Interlaced pictures + spatial direct mode is not implemented".
How do you use the internal splitter? I tried removing the Haali splitter and MPC refused to play claiming I might be missing some codecs...
Thanks a lot for looking at this! And let me know when I can take down the sample.
gordonwatts
24th December 2007, 17:38
libavcodec debug output says "Interlaced pictures + spatial direct mode is not implemented" for the file. So you're lucky if you get any pictures. We can't blame the multithreading patch in this case.
Right -- that is what I was afraid of. I take it that means it is not likely that libavcodec will be able to correctly render video from this camera for some time yet.
BTW -- how do you look at the debug output from libavcodec? Is that a special build, or is that with mplayer?
clsid
24th December 2007, 18:29
To enable an internal filter of MPC, go to: Options -> Internal Filters.
gordonwatts
24th December 2007, 19:07
To enable an internal filter of MPC, go to: Options -> Internal Filters.
Thanks, now that makes sense - now I can repro the WMP11 behavior in MPC now by turning off the TS splitter. This particular difference between the WMP and MPC w/internal splitter is due to the bug (and workaround) that haruhiko_yamagata posted above, correct?
Why doesn't MPC internal splitter pick up the audio?
Another funny thing I noticed was GSpot fails to display any codec for video or audio when I load this file, but it will generate a render chain (which is the chain I assume is being used by WMP11). I've never seen GSpot both not display a video/audio codec and still generate a render chain.
Thanks!
clsid
24th December 2007, 19:25
GSpot is only able to analyze the contents of a few container formats (AVI/MPEG/MP4/FLV). The rendering functionality is completely separated from that. GSpot constructs a graph like any other DirectShow application would do.
haruhiko_yamagata
25th December 2007, 00:18
Why doesn't MPC internal splitter pick up the audio.The audio is OK with MPC internal splitter. With Haali's media splitter, because video doesn't start playing, the filter graph is "paused" forever (the filter graph is paused until first video frame is delivered to renderer), the audio does not start.
Blight
25th December 2007, 08:19
clsid:
I believe it's AAC audio, yes.
Blight
25th December 2007, 09:02
I have a request if you're up for it,
Can you instance the ffdshow Subtitle support into a separate instance (CLSID) so that it can be used without any other post-processing effects that may be enabled in ffdshow?
This is similar to the RAW mode filter instance, just for subtitles...
The reason behind this request is to give users an additional subtitle rendering choice that doesn't require them to decode the video or conflict if they already use the RAW mode for other processing.
haruhiko_yamagata
25th December 2007, 11:47
I have a request if you're up for it,
Can you instance the ffdshow Subtitle support into a separate instance (CLSID) so that it can be used without any other post-processing effects that may be enabled in ffdshow?
This is similar to the RAW mode filter instance, just for subtitles...
The reason behind this request is to give users an additional subtitle rendering choice that doesn't require them to decode the video or conflict if they already use the RAW mode for other processing.I planed to do this after I finished the subtitle filter. It's a long way.
But yes, if you are requesting this, why not :D.
I'm going to do this in the near future (but not soon). Please wait.
DeepBeepMeep
25th December 2007, 12:56
I planed to do this after I finished the subtitle filter. It's a long way.
But yes, if you are requesting this, why not :D.
I'm going to do this in the near future (but not soon). Please wait.
That's a very neat idea! I second Blight's request.
If I am not mistaken, this would probably mean that we could get in Zoomplayer DXVA decoding AND subtitles at the same time!!! Being able to take advantage of hardware decoding in zoomplayer would be a very nice christmas/newyear's gift.
Thanks in advance for your help haruhiko_yamagata.
sheppaul
25th December 2007, 14:04
If I am not mistaken, this would probably mean that we could get in Zoomplayer DXVA decoding AND subtitles at the same time!!! Being able to take advantage of hardware decoding in zoomplayer would be a very nice christmas/newyear's gift.
Probably, it's impossible to get DxVA support with that subtitle renderer too. It's another implementation using the subtitle parser of ffdshow just like vsfilter. There should be a native support in viewpoint of player to get DxVA support with a subtitle displaying. If it is possible, it is a better idea to improve vsfilter than to reinvent wheel.
clsid
25th December 2007, 14:09
No, that is incorrect. Using a "standalone" subtitle filter will work the same as using ffdshow for processing raw video, just with less options. It is still an additional filter in the graph between decoder and renderer. That means DXVA is not possible. The only way to have both DXVA and subtitles is to use DXVA API calls to overlay the subtitles onto the video (in graphics card memory). And I don't think that Haruhiko has plans for implementing that.
sheppaul
25th December 2007, 14:15
I just wonder if a subtitle renderer could exist in form of standalone filter while enabling DxVA support. If it was possible, vsfilter should have coded in that way.
clsid
25th December 2007, 14:46
VSFilter was written long before DXVA came into existance.
But this whole DXVA discussion is pointless, because seriously I doubt that ffdshow will get DXVA capabilities. The whole design of ffdshow is simply incompatible with the limitations that DXVA would impose on it. It would be much easier to build a whole new filter from the ground up, that is specifically designed to make use of DXVA.
clsid
25th December 2007, 15:01
I just came upon a weird issue,
It seems ffdshow is not accepting the "{6134706D-0000-0010-8000-00AA00389B71}" sub-type "mp4a" fourcc (no matching media type error) from the Nero MP4 splitter (tested with v7 of nero).
I dont think this is nero white/black listing filters as the gabest realaudio decoder does accept a connection and does decode the audio.
Added at rev1724. Please test.
DeepBeepMeep
25th December 2007, 20:08
VSFilter was written long before DXVA came into existance.
But this whole DXVA discussion is pointless, because seriously I doubt that ffdshow will get DXVA capabilities. The whole design of ffdshow is simply incompatible with the limitations that DXVA would impose on it. It would be much easier to build a whole new filter from the ground up, that is specifically designed to make use of DXVA.
The idea here is not to implement DXVA in ffdshow, it is to be able to use existing hardware decoders (e.g: Cyberlink AVC decoder)with the subtitle engine (vsfilter?) of ffdshow.
To do that the subtitles should not be part of a software postprocessing filter that comes after the decoding but rather generated in "parallel" and muxed at the end using VMR9. This is done in mplayer classic and seems to work quite well.
Whenever a filter is located after a hardware decoder, the latter falls back to software mode, this obviously doesn't happen when the subtitles is merged at the very end at the graphic card level.
SBeaver
25th December 2007, 23:04
I would just like to add some helpful information regarding ac3/dts passthrough in Vista x64.
I have been bugging people around forums about this issue but had somehow missed the solution which is available here:
http://support.microsoft.com/kb/936225
This hotfix makes the old way of spdif passthrough from XP and older work under Vista x64 too, so now everyone can have spdif passthrough from 32bit media players (and ffdshow 32bit, naturally).
Hotfix is available from places like thehotfixshare and the likes, and Microsoft too if you can bother calling them up.
leeperry
25th December 2007, 23:36
Hi there,
I was wondering if there was some dualcore build >1604 available ? by XXL maybe ?
thanks,
Thunderbolt8
26th December 2007, 15:37
http://sourceforge.net/projects/ffdshow-tryout/
afaik all xxl builds from then supported multithreading
fastplayer
27th December 2007, 13:04
http://sourceforge.net/projects/ffdshow-tryout/
afaik all xxl builds from then supported multithreading
Only builds that were posted in this thread by XXL had the patch applied. Search in his post history for the latest MT build.
Edit: I stand corrected (http://forum.doom9.org/showthread.php?p=1080014#post1080014) :)
Thunderbolt8
27th December 2007, 13:45
atm im xxl's 1716 built, which was not mentioned here. but when I open AVC stuff and check via task manager I can see the load being distributed evenly on both cores.
leeperry
27th December 2007, 14:33
ok thanks! the latest from this link seems to be dual-core enabled :
http://sourceforge.net/project/showfiles.php?group_id=173941&package_id=214245
BTW, I got a more annoying problem :(
I run KMPlayer with YV12 output from ffdshow, and YUY2 output to "EVR custom" on XP SP2 with an ATI card.
I use this version :
http://mapage.noos.fr/cguyome/EVR/EVR_For_XP.zip
when I don't have ffdshow in the directshow filter chain, everything's fine.....but as soon as I add it to decode or to resize, it will randomly freeze the image but the sound is still running :(
a friend of mine has exactly the same problem with MPC in RGB32 with a nvidia card.......so we have managed to narrow down the problem to ffdshow :(
it was working fine for the both of us with Haali's Renderer.....maybe some of you programmers can give me a debug version so I can give a log of the problem ?
Thank you for your help!
_xxl
27th December 2007, 14:42
"EVR custom" on XP SP2with nvidia 7900 and latest mpc-hc doesn't work for me.
http://rapidshare.com/files/79392113/mplayerc.rar.html
leeperry
27th December 2007, 14:55
it works perfectly in KMPlayer, and the 3D depth of the image is a lot better than Haali's Renderer.
my friend is using it with "MPC casimir"
http://tibrium.neuf.fr/
Support for EVR (Enhanced Video Renderer) :
EVR is a new video renderer available with Windows Vista. It could be used on Windows XP if .Net Framework 3.0 is installed. MPC support two type of EVR :
EVR : video is displayer by Microsoft presenter. Internal subtitles, Pixels Shaders, and D3D fullscreen are not supported with this version
EVR custom presenter : the rendering part is made by MPC, almost the same way it's done with VMR9 renderless. Internal subtitles, Pixels Shaders and D3D fullscreen options are working in this mode.
http://img153.imageshack.us/img153/2103/mpcsh9.png
any chance that you give me a debug version of ffdshow so I can pin-point the freezing problem ?
Thanks,
clsid
27th December 2007, 15:19
MPC casimir = MPC Home Cinema = mpc-hc ;)
The "official" method to get EVR on XP is to install .NET 3.0.
leeperry
27th December 2007, 15:27
well yeah, or you can use my package :)
http://mapage.noos.fr/cguyome/EVR/EVR_For_XP.zip
anyhow, can we try to fix the freezing problem please ?
the problem is very easy to reproduce with x264 720p mkv and coreavc.
sometimes 5 seconds after skipping, sometimes 20 mins......damn annoying :(
Kado
27th December 2007, 23:45
with nvidia 7900 and latest mpc-hc doesn't work for me.
http://rapidshare.com/files/79392113/mplayerc.rar.html
Do you have a change log for that build?
If I recall correctly casimir was trying to enable DXVA for EVR custom as well.
I have just tested and EVR custom presenter now supports DXVA! Tried with a ts file with a mpeg2 stream and Cyberlink Video/SP decoder.
fastplayer
28th December 2007, 01:35
Do you have a change log for that build?
http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/trunk/?view=log
iron2000
28th December 2007, 09:29
Does ffdshow have problems with AAC?
I played a movie with AAC sound with ffdshow and it sounds robotic but it sounds ok with MPC's built-in filter.
It seems to only play stereo AAC and has problem with 6 channel AAC.
Maybe its this version as I don't remember problems with AAC with the previous ffdshow version.
For the EVR for XP leeperry posted, it has a few property pages.
I tried to set the video processor but it doesn't remember the setting and the options are weird.
Anyway is EVR something like the next generation VMR and how does it compare with Haali's Renderer?
leeperry
28th December 2007, 10:08
iron : you have to use the regular "EVR", then when your options are set, use "EVR C/A".
yes it looks much better than any other renderer for me and many other ppl.
yet ffdshow still freezes randomly with coreavc and that's really ANNOYING :(
I'm going to try an old version of ffdshow from march 2007 to see if it still freezes......then I'll try from june 2006....maybe that will help :D
iron2000
28th December 2007, 13:32
Select a VideoProcessor, close MPC, play video, MPC will freeze.
I think I'll stick to Haali's until theres some documentation on the stuff you can tweak in this EVR.
Now I'm more concerned about the AAC problem.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.