Log in

View Full Version : ffdshow tryouts project: Discussion & Development


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 [56] 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308

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.