Log in

View Full Version : New ffdshow build (?)


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

_xxl
3rd August 2006, 13:55
InnoSetup with CPU detection:
http://rapidshare.de/files/28031171/FFdshow-20060803-rev2546.exe.html
ffdshow.ax is compiled by MSVC2003,
libavcodec.dll & libmplayer.dll are GCC 3.4.2 (4.0.3)
and the rest are by ICL9.
Minimum CPU requirement: MMX
http://rapidshare.de/files/28031890/ffdshow-20060803-rev2546-MMX.exe.html
Minimum CPU requirement: SSE
http://rapidshare.de/files/28032215/ffdshow-20060803-rev2546-SSE.exe.html
Minimum CPU requirement: SSE2
http://rapidshare.de/files/28032468/ffdshow-20060803-rev2546-SSE2.exe.html
patches used:
aspect.diff,vorbis6ch.patch,inttypes.diff,accuracy.diff,dts.patch,tsampleformat.patch,
faad2.patch,mbaff.patch,ffdshow_multithread_060730.patch

videomixer9
3rd August 2006, 14:25
and for the ones with rapidshare phobia here:
http://prdownloads.sourceforge.net/ffdshow-tryout/FFdshow-20060803-rev2546.exe?download

foxyshadis
3rd August 2006, 14:46
Why do you need memalign (which is deprcated anyway) with gcc 3.4.5? It has _aligned_malloc. Oh, right, the vanilla lavc doesn't use _aligned_malloc for some reason, probably to work on some ancient unixes.

The reason vanilla lavc dlls can't be used is that the ffdshow versions are modified to hook into parts of ffdshow, and parts of ffdshow to hook into its structures and registrations. If you can keep just the header files in sync, that might be enough, but I'm not sure. To be honest though, keeping the header files cross-compilable while updating them was significantly more difficult than updating the individual codecs, which is minor drudgery at worst once you figure out the differences between the compilers, and the tweaks Milan made to some codecs. (h264 will definitely not work without removing a lot of code from decode_frame, because ffdshow itself does some of it first, to facilitate speedups.) If you're more experienced than me it might go a lot faster though.

However, it's at least worth looking into, there might be surprising results that could save a lot of time down the road.

It's too bad ffmpeg guys would never consider keeping MSVC compatible sections in their headers. ^^;;

I suppose I should put up or shut up now that VM9 has a source I can much more easily patch against. The only thing pertinent that isn't included is vorbis updates; it's an interesting case because ffdshow's has a much more robust tag-reading functionality. I'll get on that.

The patch that ate Miami. (http://foxyshadis.slightydark.com/random/ffdshow-lavc_merge-xboxhueg.zip)

Edit: If VM9 already updated vorbis I'll just remove it from mine. Ugh, I hope it works, parts of the patch seem to have messed up line feeds, but maybe it's just editplus's fault.

Remember to compile with ALLOW_INTERLACE (that should really be CONFIG_H264_ALLOW_INTERLACE, oh well) if you want to test MBAFF.

videomixer9
3rd August 2006, 15:15
You can directly commit to the SVN yourself, you got access rights to the tryouts svn. Feel free to commit any changes you make (to login use your regular sf.net account). I also had h264 mbaff merged to ffmpeg (my latest build can play mbaff h264 video), dunno if it's all complete but it mostly worked fine. I was trying to implement CAVS and VC1 but i'm still searching where milan hid all the CODEC_ID (ffcodecs.h) thingies and if allcodec.h is his replacement for allcodecs.c O_O If you already figured it out it may be better you commit those changes though as I'm not really far. I randomly had to remove functions called via DSPContexts that as I didn't see a real reason to merge those changes and it also would be more complex that way. It's preferable to remove the defines set by original ffmpeg authors that e.g. only compile codecs when specified explicitly.

If the patches only work against unpatched other version feel free to overwrite them if neccessary to get them updated.

To generate the updates I usually use the webinterface for the ffmpeg svn and select interesting changes and then let it generate patches for the file affected and apply them with patch -l to the source files. It randomly fails and needs hand editing.

Commit changes should be done in as small batches as possible as it's easier to revert in case of mistake usually. Also it's possible to just easily revert to earlier versions.

MatMaul
3rd August 2006, 19:35
VC1 support here (https://sourceforge.net/tracker/index.php?func=detail&aid=1534044&group_id=173941&atid=867362)
works with some wmv3 videos, I don't have vc1 samples.

LoRd_MuldeR
3rd August 2006, 19:41
VC1 support here (https://sourceforge.net/tracker/index.php?func=detail&aid=1534044&group_id=173941&atid=867362)
works with some wmv3 videos, I don't have vc1 samples.

Any builds with VC-1 support yet?

videomixer9
3rd August 2006, 20:05
kurosu added it a while before, I merged the patch to the ffdshow-tryout svn and started rebuild things. Nice work @ MatMaul.

BeNooL
3rd August 2006, 20:21
careful with drevil_xxl autodetect builds, it deleted all my FFDShow config... uguu <_<

videomixer9
3rd August 2006, 20:59
new build with VC-1 support:
http://prdownloads.sourceforge.net/ffdshow-tryout/ffdshow-tryouts-rev24-20060803.exe?download

changelog:
http://svn.sourceforge.net/viewvc/ffdshow-tryout/?view=log

_xxl
3rd August 2006, 21:27
http://www.microsoft.com/windows/windowsmedia/musicandvideo/hdvideo/contentshowcase.aspx
http://www.alanwake.com/movies.html
http://download.remedygames.com/movies/alanwake_720p60_51_15mbps.wmv

LoRd_MuldeR
3rd August 2006, 21:34
I just tried a WMV9 AVI files and MPC still uses the Windows Media DMO filter for decoding :scared:

VC-1 and WMV9 support is enabled in ffdshow and ffdshow has highest priority of all filters...

videomixer9
3rd August 2006, 21:35
many of those use trailer use DRM for some reason :P I tried some wmv3 avis too but I didn't get anything to be decoded by ffdshow so far either, though 4CC etc. seems added properly and it's enabled. Real WMVs work fine though.

LoRd_MuldeR
3rd August 2006, 21:54
many of those use trailer use DRM for some reason :P I tried some wmv3 avis too but I didn't get anything to be decoded by ffdshow so far either, though 4CC etc. seems added properly and it's enabled. Real WMVs work fine though.

I made this WMV9-AVI myself with the WMV9 VCM codec (VirtualDub).
But I cannot get ffdshow to decode it though.

The HD WMV trailers by M$ are decoded by ffdshow, but MPC crashes immediately :(


// EDIT

Screenmshot:
http://img244.imageshack.us/img244/6896/reef2az3.jpg

videomixer9
3rd August 2006, 22:13
pft 1080, i bet it was so overloaded with it that it gave up, that decoder is still awesome slow. Or maybe you use ffdshow wma and that part crashes :P

NULUSIOS
3rd August 2006, 22:34
...ok stupid question coming up...

...will we get H264 "coreavc" quality any time?
Or is their code THAT special?

Also is DXVA used by any part of ffdshow?

(ok two stupid questions)

LoRd_MuldeR
3rd August 2006, 22:35
pft 1080, i bet it was so overloaded with it that it gave up, that decoder is still awesome slow. Or maybe you use ffdshow wma and that part crashes :P

MPlayer plays that file 100% fine :rolleyes:
But I'll try the 720 version now ...


//EDIT

Hmm, the 720 version doesn't crash, but performance is really bad and there are artifacts.

videomixer9
3rd August 2006, 22:47
DMO from Microsoft has an inbuilt postprocessor, I doubt the ffmpeg implementation really has it too.

foxyshadis
3rd August 2006, 22:55
Not in the near future, although pengvado's always working on it.

The reason I didn't commit it was that I wanted someone else to test codecs I couldn't, but I guess we can always back out the changes in the future if necessary. Now I guess I can't update, conflicts all over between ours. ^^;; Oh well, I'll clear out and try again.

VC1 probably doesn't work because ffdshow isn't set up to use it yet, it still wants to use wmv9 decoder, and fails over to MS when that isn't found.

_xxl
4th August 2006, 08:54
careful with drevil_xxl autodetect builds, it deleted all my FFDShow config... uguu <_<
Please backup ffdshow config!

Tzim
4th August 2006, 11:04
I'm trying to write a .net media player for people who don't care about what's behind the scene, so I'd like to give my users a unified experience whatever the underliing codec is, especially for audio and subtitle selection.
I'd like to access exposed COM function to directly select audio stream and subtitles without having to use the old IAMSelectStream (where you can find everything, from settings to streams and subtitles).
But in order to do the COM interrop and access ffdshow interfaces, I need the IDL or typelibs (tlbs) of ffdshow, which aren't provided. Are theses discarded by the builders (as they aren't needed for ffdshow to work), or not build at all ?
If some builder can help me with this matter ?

While I'm there : I tested celtic's ffdshow-x64 build (the good thing about .net is that you can choose whether you want it run on x86 or x64), but if xvid decoding works, many filters (like OSD, resizing, postprocessing) doesn't yet. Is there more recent x64 build I could try ?

Thanks in advance (and sorry for my approximative english).

MatMaul
4th August 2006, 12:10
MPlayer plays that file 100% fine :rolleyes:
But I'll try the 720 version now ...


//EDIT

Hmm, the 720 version doesn't crash, but performance is really bad and there are artifacts.

don't use mpc, it doesn't like wmv file (I don't now why).
try with zplayer (works good for me).

MatMaul
4th August 2006, 12:38
many of those use trailer use DRM for some reason :P I tried some wmv3 avis too but I didn't get anything to be decoded by ffdshow so far either, though 4CC etc. seems added properly and it's enabled. Real WMVs work fine though.

Do you know other 4CC for wmv3 and vc-1 videos (except WMV3 and WVC1) ?

LoRd_MuldeR
4th August 2006, 13:07
Do you know other 4CC for wmv3 and vc-1 videos (except WMV3 and WVC1) ?

The 4CC of my WMV9-AVI is "WMV3", but ffdshow doesn't want to decode it ...

MatMaul
4th August 2006, 13:15
The 4CC of my WMV9-AVI is "WMV3", but ffdshow doesn't want to decode it ...

Can I have a avi sample please ?

videomixer9
4th August 2006, 13:24
Btw. I'm going on a trip for an uncertain time since it's still lecture free time and I got no exams left so don't wonder nothing will get updated for a while. Not that people wonder like last time where even the website went down :P

LoRd_MuldeR
4th August 2006, 13:29
Can I have a avi sample please ?

Do you have some FTP space for me to upload?
I cannot use Rapidshare and alike here, because the router here doesn't like HTTP uploads (always results in time-out error)

MatMaul
4th August 2006, 13:39
see your mp

Peuj
4th August 2006, 14:21
Hi,

I've read in the "Changes in FFDShow MPEG-4 Video Decoder rev. 2546" from http://www.free-codecs.com

- another quicktime format: twos
Can somebody tell how to enable it or if it's enabled by default ?

Thanks

foxyshadis
4th August 2006, 14:55
MatMaul: WMVA. Fat chance of that ever being supported though.

I can't get ffdshow to decode with any of its decoders even with all 4 enabled, only WMVideo DMO & ffdshow hooking the raw video. *shrug* I'll see if I can pinpoint the point of failure.

haruhiko_yamagata
4th August 2006, 15:12
Kurosu replyed to me and send a important part of his work.
Volume normalization bug fix.
I commited it to ffdshow-tryout.

haruhiko_yamagata
4th August 2006, 15:31
Better management of buffers of the queue.
It starts up faster. Prior version took 8 seconds to start playing 1080p file on my PC, now only 3 seconds.

It used to keep 10 buffers for the queue even if "Queue output samples" is unchecked. This time it is fixed. Two for multi-CPU system, one for single-CPU system, if "Queue output samples" is unchecked. "Two for multi-CPU system" to support on the fly enable of the queue.

MatMaul
4th August 2006, 15:49
MatMaul: WMVA. Fat chance of that ever being supported though.

I can't get ffdshow to decode with any of its decoders even with all 4 enabled, only WMVideo DMO & ffdshow hooking the raw video. *shrug* I'll see if I can pinpoint the point of failure.

hum, this problem do not occur with .wmv file.
kurosu build's with VC-1 support have the same problem.
Graphedit doesn't want to link the output of avi splitter (4CC : WMV3) with ffdshow BUT the 4CC WMV3 is supported by ffdshow.

MatMaul
4th August 2006, 16:14
@ foxyshadis : I think your last libavcodec.dll update break vc1 support.

rev 24 : my wmv file works
last rev : it don't work

videomixer9
4th August 2006, 16:54
http://prdownloads.sourceforge.net/ffdshow-tryout/ffdshow-tryouts-rev38-20060804.exe?download (ICL 9.1.028 + GCC 3.4.5)

currently all my wmv files work except the avis, the VC-1 testvid from mplayer samples ftp doesn't work though.

_xxl
4th August 2006, 17:33
WMV VC1 doesn't work.

LoRd_MuldeR
4th August 2006, 17:55
http://prdownloads.sourceforge.net/ffdshow-tryout/ffdshow-tryouts-rev38-20060804.exe?download (ICL 9.1.028 + GCC 3.4.5)

currently all my wmv files work except the avis, the VC-1 testvid from mplayer samples ftp doesn't work though.

Sorry, but now behavior is even more strange:
1. I can't get MPC to use ffdshow for the WMV trailers at all
2. The 1080 version plays fine (Windows Media DMO)
3. The 720 version makes the player freeze

Plays alle fine in Windows Media Player though - without ffdshow :scared:
Maybe M$ found a way to locked their WMVs for open-source players :p

MatMaul
4th August 2006, 18:30
actually wmv3 decoder is broken, I work on it.
the previous build of videomixer9 (rev24) works with .wmv samples.

LoRd_MuldeR
4th August 2006, 18:52
actually wmv3 decoder is broken, I work on it.
the previous build of videomixer9 (rev24) works with .wmv samples.

approved.

videomixer9
4th August 2006, 19:21
http://prdownloads.sourceforge.net/ffdshow-tryout/ffdshow-tryouts-rev39.exe?download :rolleyes: only libavcodec is recompiled, that should be enough I think, tell me if I'm wrong.

MatMaul
4th August 2006, 19:31
non it doesn't work.
it's not a compile problem : when I compile myself libavcodec,

rev 29 -> no problem
rev 30 with my last patchs -> problem

zplayer try to use ffdshow and crash (memory exception etc)

so the libavcodec update of foxyshadis is the problem, but I actually don't know why.

EDIT : to videomixer9 : I haven't fix it for the moment, it's not necessary to compile a new version at rev40

foxyshadis
4th August 2006, 21:24
Huh, WMV1/2 is working okay, I guess I'll just have to trace it. Well, that was easy, oops, mistake in dsputil.c. Grr, I could have sworn I remember merging that line into mine.

Now the weird part: WMV2 works fine even though wmv1/2 support is not compiled in. Bizarre, I wonder if it's using vc-1 as well. No! Creepy!

Oh, now I notice that #include "wmv2.c" line at the bottom of msmpeg4.c :p

videomixer9
4th August 2006, 22:35
ffdshow-tryouts-rev42.exe (http://www-users.rwth-aachen.de/Jens.Daumann/ffdshow-tryouts-rev42.exe)

whatever is usable now and whatever not O_o you can randomly find revisions on that host as it allows automated upload. They all just for fun testing so don't go update too often or you'll go mad :P

LoRd_MuldeR
4th August 2006, 22:42
ffdshow-tryouts-rev41.exe (http://www-users.rwth-aachen.de/Jens.Daumann/ffdshow-tryouts-rev41.exe)

whatever is usable now and whatever not O_o you can randomly find revisions on that host as it allows automated upload. They all just for fun testing so don't go update too often or you'll go mad :P

Now we hav the old behavior:
720 WMV Trailer plays, but performance is unacceptable
1080 WMV Trailer makes player crash after a few frames
WMV9-AVI doesn't use ffdshow for decoding

videomixer9
4th August 2006, 23:04
What I currently wonder about is where the mbaff support in h264 went to.
edit: duh of course the merging reenabled the ALLOW_INTERLACE stuff ...

MatMaul
4th August 2006, 23:17
Now we hav the old behavior:
720 WMV Trailer plays, but performance is unacceptable
1080 WMV Trailer makes player crash after a few frames
WMV9-AVI doesn't use ffdshow for decoding


720 WMV works great with zplayer (it's slow because the decoder is actually not optimized).
mpc seem to use outdated splitter, graphedit uses also by default this outdated splitter (but no problem with graphedit if I use the same splitter than zplayer)

1080 WMV crashs after some frames for me too.

foxyshadis
4th August 2006, 23:45
vm9, I don't think it's a good idea to remove ALLOW_INTERLACE yet, because is does cause a several percent slowdown. Add it by default to the makefile and projects if you want, but to force it always on at this point, when ffdshow still struggles to decode hidef on many systems, seems wrong. A better solution would be to replace them all with #ifndef CONFIG_H264_NOINTERLACE.

I bet the 1080 wmv just uses some not-supported or buggy feature, I mean, you'd likely be able to find a D1 or QCIF resolution file that crashes it just as easily. (Like a couple of wmv2s I have.) Still, it'd be good to have to try to trace the problem.

videomixer9
4th August 2006, 23:48
Nah my patch before enabled it per default but the merger of course disabled this and included it the way it's in the original ffmpeg too. It just made me wonder why it suddenly didn't work anymore. Actually I added a parameter to the makefile that allows you to enable it seperatly at compile time via a compiler parameter.

just use sth. like "make H264MBAFF=yes" and it should be enabled.

I think some codecs can be killed off from the source though. There is no chance some of them will ever be playable with ffdshow cause there are no simply directshow parsers for them.

Another funny thing to implement will be AVS and I wonder why they made a special container based on MPEG-PS for that one, it's a myth to me currently how it distinguishes itself this way from MPEG2. Currently ffmpeg/mplayer also mistakes it for MPEG2 without telling ffmpeg/mplayer specially. The problem might be that ffmpeg/mplayer adjust their parsers and that won't be much usuable just with ffdshow but would need a hack into other files.

vc-1 doesn't seem to have real mmx/sse etc. optimization so far so bad speed if kind of explainable.

LoRd_MuldeR
5th August 2006, 00:03
720 WMV works great with zplayer (it's slow because the decoder is actually not optimized).
mpc seem to use outdated splitter, graphedit uses also by default this outdated splitter (but no problem with graphedit if I use the same splitter than zplayer)

1080 WMV crashs after some frames for me too.

I don't think MPC has it's own ASF splitter, so it will use the same as any other DShow player. Furthermore it's the same in MPC as you say it for zplayer: WMV 720 works (slow!) and WMV 1080 crahses after a few frames. So it's definitely some problem in ffdshow and/or libavcodec.

videomixer9
5th August 2006, 00:16
Well even in mplayer the DMO is still prefered as decoder if available. Just give the developers some time.

btw. sourceforge deleting cookies right after it set them during login on firefox really pisses me off recently.

MatMaul
5th August 2006, 00:33
I don't think MPC has it's own ASF splitter, so it will use the same as any other DShow player. Furthermore it's the same in MPC as you say it for zplayer: WMV 720 works (slow!) and WMV 1080 crahses after a few frames. So it's definitely some problem in ffdshow and/or libavcodec.

MPC don't use it's own asf splitter, it uses "Windows Media source filter"+"ASF ACM handler"+"ASF ICM handler".
zplayer uses "WM ASF Reader".