View Full Version : ffdshow tryouts project: Discussion & Development
Yong
14th June 2007, 14:00
http://sourceforge.net/tracker/index.php?func=detail&aid=1359547&group_id=53761&atid=471492
Read about alac.
We need a volunteer to modify the mov parser in media player classic to support alac :cool:
clsid
14th June 2007, 15:51
This filters plays Alac:
http://www.dsp-worx.de/?n=15
Nicholi
14th June 2007, 16:54
Finally got together some 7.1 audio samples.
Here is an 8ch sample provided by Microsoft (http://www.microsoft.com/windows/windowsmedia/howto/articles/Multichannel.aspx#link6). For some reason they set the channel mask to 0x3F (which would imply a 5.1 speaker assignment) though I'm guessing it should be 0x63F. From browsing this page (http://www.microsoft.com/windows/windowsmedia/howto/articles/creating71audio.aspx), this page (http://www.microsoft.com/windows/windowsmedia/howto/articles/audio9procmmt.aspx), and this handy word document (http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/SpkrConfig5.doc) I take it the speaker assignment should be 0x63F. Though as I've seen Josh Coalson (FLAC dev) point out a few times, the "official" 7.1 speaker assignment hasn't come to light yet. The 2nd page I linked displays the two major assignments used I am guessing (Dolby and SDDS). Either being 0x63F (the Dolby way, "7.1 home theater speakers") or 0xFF (SDDS, "7.1 wide configuration speakers").
Anyways, with that out of the way and a sample which nicely shows which channels are going where, the fun can begin! I have also compressed the sample to FLAC here (http://www.cccp-project.net/beta/test_files/7.1_Fun/) with both the reference encoder and FFMPEG's encoder (converted to 16bit thus smaller). Also I put the files into Matroska because seemingly CoreFLAC will crash when attempting to play them in the native flac container.
You should get the same result when playing the file through ffdshow though, whether as plain uncompressed PCM or as FLAC. Otherwise without ffdshow in the chain the audio will come out just fine. The only other sample I have, which is from a Blu-ray movie, (located here with video (http://www.cccp-project.net/beta/test_files/Inosensu_K%f4kaku_kid%f4tai-sample.mkv), 80mb, and here as plain Ogg FLAC (http://www.cccp-project.net/beta/test_files/Inosensu_K%f4kaku_kid%f4tai-sample-Track2.ogg), 4.3mb) I couldn't really tell what was going on. Though with the MS sample you can hear it sounds as though its playing slower then normal. I think it would be understandable to ignore full 7.1 support for now since it seems "the industry" hasn't fully decided on how to implement it. However I think if anything being able to play discrete 7.1 but only getting 5.1 output would be a good goal for now, unless that requires a phenomenal amount of hacking around which would only need to be replaced when 7.1 support does come along.
haruhiko_yamagata
15th June 2007, 11:01
A strange bug found with this video (http://www.ftp2share.com/folder/ed4bc48b-3122-4aba-84fc-d57948e04668/pearl_jam?system=*) (to test you don't need to download all the parts) if we use 'Kernel Bob' deinterlacing. The memory usage grows fast and indefinitely. In 10 seconds the usage is around 1 GB (!!!). The most weird thing is that if you stop the video and play it again the usage doesn't reset. Build tested: 1281_20070612_xxl
Fixed at rev 1286-1287. Thank you for your report.
Amour
15th June 2007, 13:11
When installing ffdshow, they ask if I want "libmpeg2" or "libavcodec" for decoding MPEG-1. Which one of the two is recommended for highest compatibility?
fastplayer
15th June 2007, 13:14
^libmpeg2.
Leak
15th June 2007, 13:45
Fixed at rev 1286-1287. Thank you for your report.
That's strange - this could have only been the huge memory leak that was reported when the TKernelDeint object was being destroyed and re-created with every frame... :confused:
np: New Order - Turn My Way (Get Ready)
clsid
15th June 2007, 14:19
When installing ffdshow, they ask if I want "libmpeg2" or "libavcodec" for decoding MPEG-1. Which one of the two is recommended for highest compatibility?
Or none of the two. Windows also has its own MPEG-1 decoder, which works fine.
ExtraEye
15th June 2007, 14:52
isn't libmpeg2 faster for decoding though?
thuan
15th June 2007, 16:49
File tested: Naru2.mpg Narcissu 2 OP can be dled from here (http://stage-nana.sakura.ne.jp/down_e.htm). Renderer: null
ffdshow libmpeg2 (latest 1280 by clsid)
user: 8s; kernel: 0s; total: 8s; real: 8s; fps: 570.4; dfps: 531.0
gabest mpv decoder (compiled by drevil 20070325)
user: 6s; kernel: 0s; total: 6s; real: 6s; fps: 750.6; dfps: 701.4
MS Mpeg video decoder (comes with vista)
user: 3s; kernel: 0s; total: 3s; real: 3s; fps: 1331.0; dfps: 1263.4
System: E4300; 945G chipset/graphic; 2GB RAM.
akupenguin
15th June 2007, 22:40
isn't libmpeg2 faster for decoding though?
depends.
File tested: Naru2.mpg
System: A64 3800
mplayer ffmpeg
user: 4.98; system: 0.08; real: 5.08; fps: 924
mplayer libmpeg2
user: 7.14; system: 0.10; real: 7.32; fps: 646
-----
System: C2D E6600
mplayer ffmpeg
user: 3.04; system: 0.03; real: 3.08; fps: 1523
mplayer libmpeg2
user: 2.76; system: 0.03; real: 2.79; fps: 1676
foxyshadis
16th June 2007, 00:30
More to the point, the only thing mpeg-1 decoding speed matters on is a P2.
For mpeg2, libmpeg2 was more reliable whereas lavc had a few artifact causing bugs when I tested (a year ago?), that may have changed for the better by now.
haruhiko_yamagata
16th June 2007, 00:48
That's strange - this could have only been the huge memory leak that was reported when the TKernelDeint object was being destroyed and re-created with every frame... :confused:
np: New Order - Turn My Way (Get Ready)Yes, it is.
This bug was an old bug, which unfortunately been triggered by buggy rev 344. With rev 344-1286, the field order changes frequently, which means "the TKernelDeint object was being destroyed and re-created with (nealy) every frame".
Rev 1286 fixes the old bug, rev 1287 fixes the bug of rev 344.
// EDIT
After all, rev 344 was not buggy at all. Rev 1287 has been reverted.
thuan
16th June 2007, 01:02
This is completely weird. If I enable set interlace flag then I get the above result for ffdshow libmpeg mpeg1 decoding. If it's disable then I get nearly identical result as gabest decoder
user: 6s; kernel: 0s; total: 6s; real: 6s; fps: 743.1; dfps: 725.1
All outputs are the same null renderer and output colorspace is YUY2 in either case. Can't understand as the file is progressive and the null renderer shouldn't do any deinterlace.
Warren
16th June 2007, 03:15
Is there a compile guide for ffdshow-tryouts anywhere? I managed to compile it with vs8 under vista but I can't get anything to actually load the filter - graphedits keeps coming back saying that "No combination of intermediate filters could be found to make the connection. (Return code: 0x80040217)"
Any clues on if I'm just stupidly missing a step?
Delerue
16th June 2007, 05:47
Fixed at rev 1286-1287. Thank you for your report.
Thanks for the fix, man. ;)
haruhiko_yamagata
16th June 2007, 06:37
Is there a compile guide for ffdshow-tryouts anywhere? I managed to compile it with vs8 under vista but I can't get anything to actually load the filter - graphedits keeps coming back saying that "No combination of intermediate filters could be found to make the connection. (Return code: 0x80040217)"
Any clues on if I'm just stupidly missing a step?
Not yet.
This (http://ffdshow-tryout.sourceforge.net/phpBB2/viewtopic.php?t=362) is the best place to ask.
I guess you don't have libavcodec.dll, libmplayer.dll, etc in the bin directory.
Leak
16th June 2007, 10:35
I guess you don't have libavcodec.dll, libmplayer.dll, etc in the bin directory.
Yeah, it's probably missing libmplayer - I'm getting the same error whenever I forget to compile it... IIRC all most of the colorspace conversion routines rely on it - or was it the Blit functions?
@warren: You'll probably want to install GCC as well to compile those DLLs; if you don't want to install the mess that is MinGW you could simply install Cygwin, it's version of GCC (3.4.5) is a bit ancient but it should work...
np: Robert Babicz - Milo's Groove (A Cheerful Temper)
Jeremy Duncan
16th June 2007, 10:55
I'm using This (http://downloads.sourceforge.net/ffdshow-tryout/ffdshow_rev1280_20070612_clsid_sse_icl9.exe?modtime=1181669840&big_mirror=0) version of FFDshow, and it's working fine using Leak's tweak.
I'm using the FFDshow audio and Video Codecs.
Here's my log.
http://files.filefront.com//;7797993;;/
Here's my ffdshow settings
________ Deinterlace configuration. Updated June 16, 2007________
\\\\\ Codecs tab
Set Mpeg2 to Libmpeg2, and check "DVD decoding".
Set Raw video to All supported
\\\\\ Blur & NR tab
Set denoise3d: Luma: 0.00, Chroma: 2.00, Time: 3.00, HQ Checked
\\\\\ Avisynth tab
YV12 checked,
Add FFdshow Video source checked,
3:2 Pulldown box: Apply Pulldown checked,
Buffer back/Ahead: 1, 0
copy and paste the code below into the avisynth text box, and then click apply.
SetMemoryMax(1024)
LeakKernelDeint(order=1, threshold =5, sharp=true, twoway=true, forceCPU=0)
\\\\\ Resize & aspect tab
Specify size 1280x 800 (Match your screen resolution)
Process Pixel aspect ratio internally checked
No aspect ratio correction checked
Lanczos
Taps: 2
Luma Sharpen: 1.34
Accurate rounding checked
\\\\\ Queue & Output tab
Set Queue output samples checked
\\\\\ Output tab
YV12 checked
The software I used was gabest's mpc, the FFDshow I linked to, Leakkerdeint, and Windows Vista Premium.
Default output in MPC.
Leak
17th June 2007, 12:20
Okay, I believe I finally laid the OSD problem my AviSynth filter had when compiled with Visual Studio 2003 (i.e. the statistics not showing up) to rest since I got my grubby hands on VS2k3 - still not having finished my long overdue masters thesis ought to be good for something once in a while... :D
Anyway, it was caused by the "/Oa" optimization switch which is no longer supported in VS2k5, so I obviously never had a problem when compiling with it - throwing a couple of "volatile"s onto the statistic variables fixed it in VS2k3 compiles, though.
@haruhiko: Could it be your latest subtitle changes somehow messed up the OSD? When I activate it in my rev. 1294 compile the very first line of the OSD ends up at the bottom of the image, while the second line of the OSD is where it should be...
EDIT: I assume a vertical position of 0 is somehow special cased now as simply letting the y position start at 1 instead of 0 by adding 1 to the initial value of y in line 477 of TimgFilterOSD.cpp (or setting the vertical position to 1%, but that's an even greater step) makes the OSD look correct; but I'd say shifting the OSD down a pixel is a rather silly workaround...
np: Tied + Tickled Trio - Tamaghis (Aelita)
haruhiko_yamagata
18th June 2007, 11:12
@haruhiko: Could it be your latest subtitle changes somehow messed up the OSD? When I activate it in my rev. 1294 compile the very first line of the OSD ends up at the bottom of the image, while the second line of the OSD is where it should be...
Oops, it's broken...
Cast (double) was missing. Fixed at rev 1303.
hege
18th June 2007, 19:53
Hi, a small (but important) feature request..
I have widescreen plasma tv with 1024x768 resolution (4:3 pixels), and I like to resize everything to exactly that.
Could you add a simple "display aspect ratio" setting? Like MPC has "Scale to 16:9 TV" etc. I'd much rather do it in ffdshow than having unnecessary resize with display adapter.
It does work manually now by setting "Aspect ratio: Manual: 1.33:1". But if I watch a ~21:9 movie, I have to change it to 1.77:1. It would be much easier to just "Keep original aspect ratio" and "Display aspect ratio: 1.33".
Thanks.
foxyshadis
19th June 2007, 00:46
If you set it to "specify horizontal size" at 1024 (or specify both), and "keep original aspect ratio", it should always set the vertical to comply with the screen size and original aspect on a 4/3; it only stretches if you turn aspect off. If it doesn't, it's some sort of bug.
Whoa, we got a new icon.
cyberbeing
19th June 2007, 01:29
For ffdshow "Resize & aspect" would it be possible to add a "Resize if..." option for aspect ratio?
Amour
19th June 2007, 01:45
Or none of the two. Windows also has its own MPEG-1 decoder, which works fine.
Not as fine as you would imagine. I have a video with MPEG-2 in a MPEG-1 container (according to G-Spot), and it doesn't play without enabling ffdshow MPEG-1 decoder.
Thats why I was asking for which one to choose between libmpeg2 and libavcodec.
Amour
19th June 2007, 01:58
File tested: Naru2.mpg Narcissu 2 OP can be dled from here (http://stage-nana.sakura.ne.jp/down_e.htm). Renderer: null
Woah... this video is almost completely static, like a picture slideshow. Why using it as a fps test?
thuan
19th June 2007, 02:12
Do it for fun on a whim and it's the only MPEG-1 movie I have at hand.
Not as fine as you would imagine. I have a video with MPEG-2 in a MPEG-1 container (according to G-Spot), and it doesn't play without enabling ffdshow MPEG-1 decoder.
You ask the MPEG-1 decoder to decode MPEG-2?
hege
19th June 2007, 05:48
If you set it to "specify horizontal size" at 1024 (or specify both), and "keep original aspect ratio", it should always set the vertical to comply with the screen size and original aspect on a 4/3; it only stretches if you turn aspect off. If it doesn't, it's some sort of bug.
I guess you didn't understand my problem. I have 16:9 screen, but 4:3 desktop (it's stretched sideways). How would ffdshow know that if I don't tell it?
Leak
20th June 2007, 22:04
I believe that I've taken care of the "dirty borders" problem with revision 1310; it was a case of some filters (my AviSynth filter and all deinterlacers) creating a new output frame but not setting the "dirty border" flag that causes the borders to be cleared at the end of the filter chain...
Please tell me if there's some other filter that still produces garbled borders after you add borders with the "Resize & Aspect > Borders" filter earlier on in the filter chain.
np: Collabs 3000 - Acid Trezcore (Metalism)
haruhiko_yamagata
21st June 2007, 12:23
Hi, a small (but important) feature request..
I have widescreen plasma tv with 1024x768 resolution (4:3 pixels), and I like to resize everything to exactly that.
Could you add a simple "display aspect ratio" setting? Like MPC has "Scale to 16:9 TV" etc. I'd much rather do it in ffdshow than having unnecessary resize with display adapter.
It does work manually now by setting "Aspect ratio: Manual: 1.33:1". But if I watch a ~21:9 movie, I have to change it to 1.77:1. It would be much easier to just "Keep original aspect ratio" and "Display aspect ratio: 1.33".
Thanks.
OK, I'll try on it when I have time.
Soulhunter
21st June 2007, 20:05
Any chance you gonna add AALib [and this color version you have in MPlayer] output to ffdshow?
Tia n' Bye
Jeremy Duncan
22nd June 2007, 03:54
Using CLSID's generic 1309 version of FFDshow. Leak's tweak works fine.
Log
http://files.filefront.com//;7850384;;/
http://aycu06.webshots.com/image/17685/2000320438758541855_th.jpg (http://allyoucanupload.webshots.com/v/2000320438758541855)
http://aycu06.webshots.com/image/17685/2000304959386673506_th.jpg (http://allyoucanupload.webshots.com/v/2000304959386673506)
I'm using the Seesaw config with gabest's mpc from my guide here: Link (http://forum.doom9.org/showthread.php?t=115727)
foxyshadis
22nd June 2007, 04:15
Any chance you gonna add AALib [and this color version you have in MPlayer] output to ffdshow?
Although AAlib and matrixview are cute, is there anyone who actually wants to watch movies that way, let alone needs it? They'd have to make a very strong case for incorporation.
Leak
22nd June 2007, 08:21
Although AAlib and matrixview are cute, is there anyone who actually wants to watch movies that way, let alone needs it? They'd have to make a very strong case for incorporation.
Wouldn't an AALib DirectShow renderer make more sense anyway? :D
Soulhunter
22nd June 2007, 10:45
Although AAlib and matrixview are cute, is there anyone who actually wants to watch movies that way, let alone needs it? They'd have to make a very strong case for incorporation. Probably its not that important for watching movies [tho still fun] but you could use it in AVS as well [afaik there is no AVS version of AALib] to add this cool effect to selfmade musicvideos etc...
Tia n Bye
_xxl
22nd June 2007, 20:14
Intel® Integrated Performance Primitives Code Samples can be found here:
http://www.intel.com/cd/software/products/asmo-na/eng/219967.htm#download
Intel® Integrated Performance Primitives H.264 Decoder
What is new:
new threading scheme was implemented. The decoder has got more scalability on 4cpu systems.
some algorithmic optimizations were done in CAVLC/CABAC entropy elements decoding.
new scheme of errors handling was introduced. The decoder able to play streams which have errors or missing fields/frames. Exception handling was implemented.
Known Limitations:
decoder supports decoding of files created by JM9.2 compliant encoders or latest.
decoder supports baseline, main, extended and high profiles features.
decoder can crash on some streams which have got errors or missed/redundant data.
decoder can produce artifacts on XScale based platforms.
decoder doesn’t support multi-threading for streams with slice groups.
haruhiko_yamagata
23rd June 2007, 08:21
I believe that I've taken care of the "dirty borders" problem with revision 1310; it was a case of some filters (my AviSynth filter and all deinterlacers) creating a new output frame but not setting the "dirty border" flag that causes the borders to be cleared at the end of the filter chain...
Please tell me if there's some other filter that still produces garbled borders after you add borders with the "Resize & Aspect > Borders" filter earlier on in the filter chain.
np: Collabs 3000 - Acid Trezcore (Metalism)
Thanks for the fix, it's working greatly.
cyberbeing
23rd June 2007, 12:18
Could you once again add the ability to force ffdshow deblocking for h.264 video (after in-loop deblocking). I know this is something that is an old issue and you will most likely refuse to re-add it to the UI but could you at least add a hidden registry entry or something for those (like me) that have a desire to do it?
You might ask, why do I want to force extra deblocking when h264's has in-loop deblocking?
The reason is I often run into h264 encodes that are still blocky even after in-loop blocking (usually the result of a blocky source which is poorly re-encoded at a low bitrate). Using something like fast spp deblocking at low strength (1-25%) seems to do a good job cleaning up that leftover blocking and smoothing out gradient banding without destroying the video. The ability to do this again directly in ffdshow without having to feed it raw video from another decoder would be nice.
Seb.26
27th June 2007, 14:09
Hi guys ...
I have add some (small) things to FFDShow-tryout (b2a) :
1) Allow "PC YUV" mode in output = user can disable the TV->PC level mapping done when YUV->RGB convert.
2) New work mode in level filter : "Seb's BTB&WTW" =
user define default mapping [16;235]->[0;255] or [16;235]->[16;235] ie.
Then the level filter will detect BTB & WTW and adjust the input scale = if some BTB are detected, mapping will change to [13;235]->[0;255] ie.
This 2 functions allow user to output RGB32 [0;235] with all the BTB&WTW automaticaly included without any dynamic loose
I've used tortoise and VS 2005 C++ express ... (start from beta2 source)
... How could I propose my patch to officials devs for including it in official builds ?
:thanks:
foxyshadis
27th June 2007, 14:37
Post it to the tracker (http://sourceforge.net/tracker/?group_id=173941&atid=867362), and if you want a lot of testing & discussion, post builds here too. (Like Leak did. ;p) To create the patch just select tortoise->create patch from the svn root folder, and choose all the important files.
It'd help if you can first raise yours to current SVN, in case there are any conflicts that you would know better how to take care of, but not necessary.
Sounds cool, btw.
Leak
27th June 2007, 14:46
Well, since we're on the topic of ffdshow... :D
I'm currently working on a (to my surprise rather small) patch to scale all configuration dialogs horizontally - it's already working almost correctly, I've only got to fix a few small display problems and add an option to the translation templates that lets you choose the amount of scaling. Basically I'm just taking the dialogs created in Twindow's CreateDialog (IIRC) and stretch all controls horizontally, as Windows' mechanism of creating dialogs from templates is horribly un-configurable.
It's main purpose is to give the German translation more room for it's usually longer labels *WITHOUT* resorting to using Times New Roman as dialog font... *shudder*
I'm curious - who else here that could use a bit more horizontal space for translations? :) (Or maybe for the English version, even...)
Seb.26
27th June 2007, 15:01
It'd help if you can first raise yours to current SVN, in case there are any conflicts that you would know better how to take care of, but not necessary.
Ok, I will do this 3 points ( update&merge / upload on tracker / link release here :) )
Thanks for your help ! ;)
multiblitz
27th June 2007, 16:43
Good to read that Haali and the ffdshow team have progressed on this issue ! As long as the IVTC flags are given by the the splitter and the timestamps are properly set, there isn't any need to implement RFF (that is to repeat fields in the output). This flag is only useful to display progressive content on an interlaced display (by turning a 24fps progressive movie into a 30 fps interlaced movies). The only thing that may be required is to further adjust the timestamps if RFF is detected.
Hi, guys, any news on this one (the HD-DVD Video /audio -Sync-Issue )...?
albain
28th June 2007, 14:04
Hi,
I am trying to instanciate the FFDShow decoder filter inside my application.
It works if I try to retrieve the FFDShow interfaces, but not with the IBaseFilter interface :
IffDecoder *ffdshowVideo;
CoCreateInstance(CLSID_FFDSHOW, NULL, CLSCTX_INPROC, IID_IffDecoder, (LPVOID *)&ffdshowVideo); => OK
IBaseFilter *ffdshowVideo;
CoCreateInstance(CLSID_FFDSHOW, NULL, CLSCTX_INPROC, IID_IBaseFilter, (LPVOID *)&ffdshowVideo); => KO
This is weird because FFDShow decoder implements this interface. How can it be added to a graph if it is not the case ?
Any help would be appreciated
Thanks
EDIT : never mind, I found why. This is because visual studio (or my executable) is not in the supported applications inside FFDShow configuration
_xxl
28th June 2007, 20:29
I can't commit anything to SVN.
fastplayer
28th June 2007, 21:29
^I couldn't access SVN log for the entire day. Now it works...
clsid
1st July 2007, 13:17
@all, a pre-beta3 build is now available at sourceforge. Please test it. If no big problems are reported in the next 24 hours, this build will become official beta3.
@all, a pre-beta3 build is now available at sourceforge. Please test it. If no big problems are reported in the next 24 hours, this build will become official beta3.
Whoops, I guess my configuration dialog changes commit came at a bit of an odd time then? :(
(Checking here before committing might have been a good idea, of course...)
Back them out if you want or branch on the revision before my checkin...
np: Lusine - Everything Under The Sun (Lawrence Mix) (Podgelism)
deets
1st July 2007, 18:46
i need help :(
would someone post a 64bit version of one of the updated ffdshow tryouts? the problem is this, vista 64 limits the digital output to only 64 bit players, which i think is currently only wmp11 64bit. The problem is that it seems the h.264 support in the ffdshow 64 bit i can find is broken, only outputs green.
coreavc doesnt work in the 64 wmp but does in 32 bit, but not digital out.
Dr. Pizza compiled a version, but sadly i cant find it anywhere and the link he posted is dead.
anyone help :)
Amour
1st July 2007, 20:23
@all, a pre-beta3 build is now available at sourceforge.
I just love the name of it. :D
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.