Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 12th September 2009, 21:45   #8041  |  Link
Porsche_fan
Registered User
 
Join Date: May 2007
Posts: 19
I have noticed that postprocessing doesn’t work when using ffdshow to decode a Windows Media Advanced Profile (VC-1) file. However, if I use MPC’s built in codec VC1 (FFmpeg) codec to decode and then use ffdshow set to Raw Support, I can utilize ffdshow’s postprocessing.


I’ve tried other players and had the same experience where postprocessing doesn’t work if ffdshow decodes. Also tried several of the recent builds too.


Is there a reason for ffdshow’s codec to disable ffdshow’s postprocessing for this file format?

Last edited by Porsche_fan; 12th September 2009 at 22:23.
Porsche_fan is offline   Reply With Quote
Old 12th September 2009, 23:00   #8042  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Not sure, but AFAIK the WMV9/VC-1 format has a "built-in" deblock filter that is always enabled, because it's an inherent part of the encoding/decoding process.

That's similar (but not identical) to H.264's Inloop-Deblocking. Therefore it would make sense to disable additional Post-processing for those formats...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline   Reply With Quote
Old 12th September 2009, 23:28   #8043  |  Link
Px
>>^^__^^<<
 
Px's Avatar
 
Join Date: Jun 2005
Posts: 222
BatKnight
Mercury_22

Use Process Monitor utility to see registry and file activity on your system while hang, maybe that helps to track down the problem
Px is offline   Reply With Quote
Old 13th September 2009, 02:39   #8044  |  Link
BatKnight
Registered User
 
BatKnight's Avatar
 
Join Date: Oct 2008
Location: Portugal
Posts: 161
Quote:
Originally Posted by Px View Post
BatKnight
Mercury_22

Use Process Monitor utility to see registry and file activity on your system while hang, maybe that helps to track down the problem
OK, I've done it.
I used Process Monitor to isolate the REGSVR32.EXE process during ffdshow installation and found out that it hangs with full CPU when registering ffdshow.ax
Here is a file with 2 logs in PML format (Process Monitor) showing everything. One is during the ffdshow installation and the other one is just a "regsvr32 /s ffdshow.ax"
http://stashbox.org/629584/logfiles.rar
Both give the same problem: the process hangs forever eating all CPU.

I have other information: I've tested the ICL 11.1.038 ffdshow on my notebook which is a C2D T4200 with Intel chipset and Windows 7 x64 and it gave the same exact problem. So I can reproduce this problem on both Win 7 x64 and Win 7 32bits.
On x64 I've noticed that it uses the 32bit regsvr32.exe, if this is of any importance.

If any ffdshow developer needs further testing, just let me know.

Bat
__________________
Win 11 x64, Geforce RTX 4060 Ti 16GB, TV Sony KD-55X8509C HDMI, Denon AVR-X2700H, Core i7-9700K, 32GB DDR4, Creative Labs Gigaworks S750 7.1 speakers
MPC Home-Cinema
madVR
LAV Filters
BatKnight is offline   Reply With Quote
Old 13th September 2009, 02:47   #8045  |  Link
Snowknight26
Registered User
 
Join Date: Aug 2007
Posts: 1,430
Quote:
Originally Posted by BatKnight View Post
On x64 I've noticed that it uses the 32bit regsvr32.exe, if this is of any importance.
That's normal when you're using the 32-bit version of ffdshow.
Snowknight26 is offline   Reply With Quote
Old 13th September 2009, 03:13   #8046  |  Link
GrofLuigi
Member of a Library
 
Join Date: Oct 2002
Posts: 463
BatKnight,

From a quick glance on your procmon log I can guess what could have interfered:

Eset
PunkBuster
DEP
Prefetch (if corrupt?)

For more, I think you'd need to disable "drop filtered events" if used, and not restrict logging to regsvr32 only...

GL
GrofLuigi is offline   Reply With Quote
Old 13th September 2009, 03:29   #8047  |  Link
Porsche_fan
Registered User
 
Join Date: May 2007
Posts: 19
@ LoRd_MuldeR.

That makes sense. However, it was exactly that built in deblocking feature of wmv9 that I was hoping to take advantage of and couple it with ffdshow’s postprocessing deblocker.


Additionally, it would be helpful to use the postprocessing deblocking when decoding wmv videos with libavcodec. Within ffdshow it appears that for wmv decoding, deblocking occurs with wmv9 selected as the codec. However, the internal deblocking function doesn’t appear to occur, or is extremely minimal, with libavcodec. MPC’s FFmpeg decoding for wmv also appears to be missing the internal deblocking function too.


If it is possible, I think it would be beneficial to enable within ffdshow postprocessing with wmv decoding, allowing the flexibility to mix and match deblocking methods with different wmv decoders. As sometimes some deblocking is required but the wmv9 codec is a little too aggressive, resulting in significant loss of detail. In those instances it would be nice to be able to use libavcodec combined with ffdshow's postprocessing deblockers.

Last edited by Porsche_fan; 13th September 2009 at 03:46.
Porsche_fan is offline   Reply With Quote
Old 13th September 2009, 09:57   #8048  |  Link
FoLLgoTT
And so it begins...
 
FoLLgoTT's Avatar
 
Join Date: Nov 2005
Location: Hannover, Germany
Posts: 64
Very helpful links. Do you have similar streams for 5.1 or 6.1?
FoLLgoTT is offline   Reply With Quote
Old 13th September 2009, 11:36   #8049  |  Link
nm
Registered User
 
Join Date: Mar 2005
Location: Finland
Posts: 2,641
Quote:
Originally Posted by Porsche_fan View Post
Additionally, it would be helpful to use the postprocessing deblocking when decoding wmv videos with libavcodec. Within ffdshow it appears that for wmv decoding, deblocking occurs with wmv9 selected as the codec. However, the internal deblocking function doesn’t appear to occur, or is extremely minimal, with libavcodec. MPC’s FFmpeg decoding for wmv also appears to be missing the internal deblocking function too.
What do you mean by "internal deblocking"? Libavcodec does in-loop deblocking, but it doesn't do postprocess (out-loop) deblocking that Microsoft's wmv decoder does by default. For postprocess deblocking you are supposed to use ffdshow's filters, which should satisfy all your requirements. So are you suggesting that one of those filters should be enabled automatically for wmv decoding?
nm is offline   Reply With Quote
Old 13th September 2009, 14:04   #8050  |  Link
Px
>>^^__^^<<
 
Px's Avatar
 
Join Date: Jun 2005
Posts: 222
Quote:
Originally Posted by BatKnight View Post
OK, I've done it.
I used Process Monitor to isolate the REGSVR32.EXE process during ffdshow installation and found out that it hangs with full CPU when registering ffdshow.ax
In addition to GrofLuigi answer:
Last event with regsvr32 in your logs is querying HKCU\Software\GNU\ffdshow\allowDPRINTF key, I've installed same version on my system to see, what regsvr32 doing next. In my case, it was querying keys HKCU\Software\GNU\ffdshow\isBlacklist and HKCU\Software\GNU\ffdshow\blacklist. Try to delete this keys and reinstall ffdshow again
Px is offline   Reply With Quote
Old 13th September 2009, 14:08   #8051  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by Porsche_fan View Post
That makes sense. However, it was exactly that built in deblocking feature of wmv9 that I was hoping to take advantage of and couple it with ffdshow’s postprocessing deblocker.
VC-1/WMV9's deblocking is an inherent part of the encoding and decoding process. It's technically impossible to use that for anything other than WMV9/VC-1!

And VC-1/WMV9 cannot be decoded (properly) without its "built-in" deblocking.

Quote:
Originally Posted by Porsche_fan View Post
If it is possible, I think it would be beneficial to enable within ffdshow postprocessing with wmv decoding, allowing the flexibility to mix and match deblocking methods with different wmv decoders.
You miss the point: We are NOT talking about "different deblocking methods" here! The buit-in deblocking is part of the WMV9/VC-1 specifications. Any WMV9 decoder does apply it and all WMV9 decoders must do it in the exactly same way! At the same time the "post-processing" filter in ffdshow is 100% format-independent and it's optional. It is applied after the video is returned from the decoder. Since the video returned from the VC-1/WMV9 decoder already has been deblocked (same goes for H.264 video!), there is no need for additional post-processing. Applying additional post-processing to WMV9 or H.264 wouldn't be beneficial in 99% of all cases. Therefore it is a good idea to skip the "post-processing" for VC-1 and H.264, in order to protect the user from deblocking the video twice and thus getting bad quality...

(I remember that back at the time when I experimented with H.264 for the very first stime, I wasn't satisfied at all. Until I turned of the additional post-processing and got great results ^^)
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 13th September 2009 at 14:39.
LoRd_MuldeR is offline   Reply With Quote
Old 14th September 2009, 09:34   #8052  |  Link
Mercury_22
Registered User
 
Join Date: Dec 2007
Posts: 1,138
Quote:
Originally Posted by FoLLgoTT View Post
Very helpful links. Do you have similar streams for 5.1 or 6.1?
Sorry NO
__________________
Intel UHD Graphics 750; Win 10 22H2
Mercury_22 is offline   Reply With Quote
Old 14th September 2009, 18:06   #8053  |  Link
Porsche_fan
Registered User
 
Join Date: May 2007
Posts: 19
Quote:
Originally Posted by nm View Post
What do you mean by "internal deblocking"? Libavcodec does in-loop deblocking, but it doesn't do postprocess (out-loop) deblocking that Microsoft's wmv decoder does by default. For postprocess deblocking you are supposed to use ffdshow's filters, which should satisfy all your requirements. So are you suggesting that one of those filters should be enabled automatically for wmv decoding?
No I wasn’t suggesting anything should be automatic. What I have observed is that ffdshow’s postprocessing filter is nonfunctional when ffdshow decodes wmv video using either the wmv9 codec or the libavcodec. It appears that ffdshow deactivates the postprocessing filters for wmv files.


My suggestion is that ffdshow users be given the ability to engage ffdshow’s postprocessing filters, if they so chose, when using either wmv9 or libavcodec to decode a wmv file.


Quote:
Originally Posted by LoRd_MuldeR View Post
VC-1/WMV9's deblocking is an inherent part of the encoding and decoding process. It's technically impossible to use that for anything other than WMV9/VC-1!

And VC-1/WMV9 cannot be decoded (properly) without its "built-in" deblocking.



You miss the point: We are NOT talking about "different deblocking methods" here! The buit-in deblocking is part of the WMV9/VC-1 specifications. Any WMV9 decoder does apply it and all WMV9 decoders must do it in the exactly same way!

LoRd_MuldeR I apologize if I misunderstand what you are saying, however, there is a deblocking difference between decoding using ffdshow’s wmv9 filter alone verses ffdshow’s libavcodec filter alone. Maybe not the best example but here are two scene shots demonstrating this point with ffdshow decoding both...no other filters applied.


Libavcodec



wmv9




Quote:
Originally Posted by LoRd_MuldeR View Post
At the same time the "post-processing" filter in ffdshow is 100% format-independent and it's optional.

As I mentioned within ffdshow the wmv format prevents access to ffdshow's postprocessing. I can understand your point that many times it may be detrimental to allow the user to deblock twice unknowingly. However, especially in the case of using libavcodec, I believe allowing the user to select from customizable deblocking methods available within ffdshow’s postprocessing would be beneficial.
Porsche_fan is offline   Reply With Quote
Old 14th September 2009, 18:19   #8054  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by Porsche_fan View Post
there is a deblocking difference between decoding using ffdshow’s wmv9 filter alone verses ffdshow’s libavcodec filter alone.
That definitely shouldn't be the case. Two standard-compliant decoders should always give identical output for identical input.

Given that libavcodec isn't broken, I suspect that M$'s WMV9 decoder has some additional filtering that goes beyond the standard VC-1 deblocking

(BTW: Cannot see your screenshots)

Quote:
Originally Posted by Porsche_fan View Post
As I mentioned within ffdshow the wmv format prevents access to ffdshow's postprocessing. I can understand your point that many times it may be detrimental to allow the user to deblock twice unknowingly. However, especially in the case of using libavcodec, I believe allowing the user to select from customizable deblocking methods available within ffdshow’s postprocessing would be beneficial.
Well, maybe a "Skip additional post-processing" option (enabled by default!) could be added to "WMV9" and "VC-1" on the "Codecs" page.

Let's wait for the ffdshow developers to comment on this...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline   Reply With Quote
Old 15th September 2009, 21:38   #8055  |  Link
XhmikosR
Registered User
 
Join Date: Mar 2007
Location: Hellas (Greece)
Posts: 543
@devs: 64bit compilation is broken in rev3075.

EDIT: It seems the changes in makefile_c.inc break 64bit compilation.

Last edited by XhmikosR; 15th September 2009 at 22:02.
XhmikosR is offline   Reply With Quote
Old 15th September 2009, 23:04   #8056  |  Link
clsid
*****
 
Join Date: Feb 2005
Posts: 5,647
Use this MinGW64 build:
http://sourceforge.net/projects/ming...1.zip/download
__________________
MPC-HC 2.2.1
clsid is offline   Reply With Quote
Old 15th September 2009, 23:38   #8057  |  Link
BatKnight
Registered User
 
BatKnight's Avatar
 
Join Date: Oct 2008
Location: Portugal
Posts: 161
Quote:
Originally Posted by Porsche_fan View Post
LoRd_MuldeR I apologize if I misunderstand what you are saying, however, there is a deblocking difference between decoding using ffdshow’s wmv9 filter alone verses ffdshow’s libavcodec filter alone. Maybe not the best example but here are two scene shots demonstrating this point with ffdshow decoding both...no other filters applied.


Libavcodec



wmv9

Well, there is indeed a very noticeable difference between the two decoders. Could a ffdshow developer take a look on this?
If you can't see the screenshots let me know and I'll post a copy on different server if Porsche_fan allows me.

Bat
__________________
Win 11 x64, Geforce RTX 4060 Ti 16GB, TV Sony KD-55X8509C HDMI, Denon AVR-X2700H, Core i7-9700K, 32GB DDR4, Creative Labs Gigaworks S750 7.1 speakers
MPC Home-Cinema
madVR
LAV Filters
BatKnight is offline   Reply With Quote
Old 16th September 2009, 00:57   #8058  |  Link
Porsche_fan
Registered User
 
Join Date: May 2007
Posts: 19
Quote:
Originally Posted by LoRd_MuldeR View Post
That definitely shouldn't be the case. Two standard-compliant decoders should always give identical output for identical input.

Given that libavcodec isn't broken, I suspect that M$'s WMV9 decoder has some additional filtering that goes beyond the standard VC-1 deblocking
I've always thought it was intentional as wmv9's deblocking is either too aggressive or nonselective. The result is decoding with wmv9 almost always produces a softer (slightly blurred) image compared to libavcodec.


So I hope that libavcodec will remain as it is...I'd just like the ability to apply postprocessing deblocking to both wmv9 and libavcodec for all types of wmv files.


Normally, I don't like to use deblocking or NR filters as I feel they tend to destroy too much detail. However, in the case of HD content, frequently they are created with low bits/pixel to keep the file size down. The end result however, is an increased tendency towards blocking.


I like your idea for a solution. Hopefully, it is easy to implement.



@BatKnight

I have no objection to anyone rehosting the pics. Thanks
Porsche_fan is offline   Reply With Quote
Old 16th September 2009, 01:23   #8059  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,666
Yes, libavcodec doesn't implement WMV9's optional postprocessing deblockers.
Dark Shikari is offline   Reply With Quote
Old 16th September 2009, 01:23   #8060  |  Link
alexins
MPC-BE DEV
 
alexins's Avatar
 
Join Date: Mar 2008
Location: Slovenija
Posts: 584
Quote:
Originally Posted by XhmikosR View Post
@devs: 64bit compilation is broken in rev3075.

EDIT: It seems the changes in makefile_c.inc break 64bit compilation.
In the file "makefile_c.inc" the error is made:
Code:
ifeq ($(64BIT),yes)
    TARGET_OS=x86_64-pc-mingw32
    CFLAGS+=-DWIN64 -D_WIN64 -D__MINGW64__
    OPTFLAGS+=-O2 -m64
else
Given the changes in revision 3075, should be so:
Code:
ifeq ($(64BIT),yes)
    TARGET_OS=x86_64-w64-mingw32
    CFLAGS+=-DWIN64 -D_WIN64 -D__MINGW64__
    OPTFLAGS+=-O2 -m64
else
__________________
Win11 x64, i7 8700K 5Ghz, ASUS MAXIMUS X HERO, G.Skill (2x8GB) Trident Z F4-3600C16D-16GTZ, RX 5700,TV Philips 43PUS6703/12, Zappiti 4K HDR
Media Player Classic - BE x86/x64. Team of developers.
alexins is offline   Reply With Quote
Reply

Tags
ffdshow, ffdshow tryouts, ffdshow-mt, ffplay, icl


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 23:35.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.