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

Reply
 
Thread Tools Search this Thread Display Modes
Old 11th December 2011, 09:18   #14321  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by xy View Post
If QuerryAccept returns the right value, than the reconnection never happen. If a downstream filter do a reconnection before QuerryAccept or even if upstream filter doesnot accept it, than that is its fault.
I know ffdshow can return an error on QuerryAccept. But QuerryAccept may be called for an inevitable reason (for example, the hardware can no longer accept the prior color space), in that case, rejecting may result the application stop working. What happens after rejection depends on the downstream. ffdshow's choice is to keep connection as long as it is possible even by outputting unckecked color space. It's not violating the manner of DirectShow at all.
ffdshow had code to reject that strictly, which is currently disabled (TffdshowDecVideo::setOutputMediaType etc). It was Milan's choice and I completely agree with him.
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 11th December 2011, 09:38   #14322  |  Link
xy
Registered User
 
Join Date: Nov 2011
Posts: 5
Quote:
Originally Posted by haruhiko_yamagata View Post
I know ffdshow can return an error on QuerryAccept. But QuerryAccept may be called for an inevitable reason (for example, the hardware can no longer accept the prior color space), in that case, rejecting may result the application stop working. What happens after rejection depends on the downstream. ffdshow's choice is to keep connection as long as it is possible even by outputting unckecked color space. It's not violating the manner of DirectShow at all.
ffdshow had code to reject that strictly, which is currently disabled (TffdshowDecVideo::setOutputMediaType etc). It was Milan's choice and I completely agree with him.
Ah, that's news to me. Although I'm not really understand the technic point, (for COREAVC returns an error on QuerryAccept. Or think about it in another way, if ffdshow is queried for some formats it doesnot implement, then it still needs to reject. The unchecked types can be seen as unimplemented types.) I'm OK with this answer.
xy is offline   Reply With Quote
Old 11th December 2011, 09:50   #14323  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by xy View Post
Ah, that's news to me. Although I'm not really understand the technic point, (for COREAVC returns an error on QuerryAccept. Or think about it in another way, if ffdshow is queried for some formats it doesnot implement, then it still needs to reject. The unchecked types can be seen as unimplemented types.) I'm OK with this answer.
ffdshow rejects connection if the media type is not supported. There are not too may formats that ffdshow can connect.
Code:
const TcspFcc cspFccs[]= {
    _l("YV12")     ,FOURCC_YV12,FF_CSP_420P|FF_CSP_FLAGS_YUV_ADJ,false,true,
    _l("I420/IYUV"),FOURCC_I420,FF_CSP_420P|FF_CSP_FLAGS_YUV_ADJ|FF_CSP_FLAGS_YUV_ORDER,false,true,
    _l("YUY2")     ,FOURCC_YUY2,FF_CSP_YUY2,false,true,
    _l("YVYU")     ,FOURCC_YVYU,FF_CSP_YVYU,false,true,
    _l("UYVY")     ,FOURCC_UYVY,FF_CSP_UYVY,false,true,
    _l("VYUY")     ,FOURCC_VYUY,FF_CSP_VYUY,false,true,
    _l("RGB32")    ,FOURCC_RGB3,FF_CSP_RGB32,true,true,
    _l("RGB24")    ,FOURCC_RGB2,FF_CSP_RGB24,true,true,
    _l("RGB555")   ,FOURCC_RGB5,FF_CSP_RGB15,true,true,
    _l("RGB565")   ,FOURCC_RGB6,FF_CSP_RGB16,true,true,
    _l("CLJR")     ,FOURCC_CLJR,FF_CSP_CLJR,false,false,
    _l("Y800")     ,FOURCC_Y800,FF_CSP_Y800,false,true,
    _l("NV12")     ,FOURCC_NV12,FF_CSP_NV12,false,false,
    _l("P016")     ,FOURCC_P016,FF_CSP_P016,false,false,
    _l("P010")     ,FOURCC_P010,FF_CSP_P010,false,false,
    _l("P210")     ,FOURCC_P210,FF_CSP_P210,false,false,
    _l("P216")     ,FOURCC_P216,FF_CSP_P216,false,false,
    _l("AYUV")     ,FOURCC_AYUV,FF_CSP_AYUV,false,false,
    _l("Y416")     ,FOURCC_Y416,FF_CSP_Y416,false,false,
    NULL,0
};
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 11th December 2011, 09:56   #14324  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by haruhiko_yamagata View Post
ffdshow handles soft-telecine internally if detected. It average timestamps and output the frame as progressive. So video renderers do not have to take care of soft-telecine. In theory...
Please make sure "Soft telecine" is checked in "Decoder options" page. And enable OSD "Frame timestamps" and "Frame duration".
ffdshow might be failing to detect soft-telecine. In that case, please send me the sample.
By the way, current MPEG2 decoders in ffdshow doesn't seem to be stable...
Thanks, I didn't know that "soft telecine" option in the decoder options. That option seems to work ok if the whole stream is soft-telecined. But if the stream is a mixture of soft- and hard-telecine (I mean if it switches between soft- and hard-telecine all the time), it fails to do IVTC properly. That probably was to be expected, so it's not a bug. Doesn't matter, anyway, cause I'm working on my own IVTC algorithm. So I've disabled that "soft telecine" option in ffdshow. After I did that, things looked better, but there's still something wrong. With the "soft telecine option" disabled, here are the flags madVR receives from ffdshow:

Code:
168: top field first: -, repeat first field: +
169: top field first: +, repeat first field: -
170: top field first: +, repeat first field: +
171: top field first: -, repeat first field: -
172: top field first: -, repeat first field: +
173: top field first: +, repeat first field: -
174: top field first: +, repeat first field: -
175: top field first: +, repeat first field: -
176: top field first: +, repeat first field: -
177: top field first: +, repeat first field: -
178: top field first: +, repeat first field: -
179: top field first: -, repeat first field: -
180: top field first: -, repeat first field: -
181: top field first: -, repeat first field: +
182: top field first: +, repeat first field: -
183: top field first: +, repeat first field: +
184: top field first: -, repeat first field: -
185: top field first: -, repeat first field: +
For comparison, here are the correct flags, output by ffmpeg/libav directly:

Code:
168: top field first: -, repeat first field: +
169: top field first: +, repeat first field: -
170: top field first: +, repeat first field: +
171: top field first: -, repeat first field: -
172: top field first: -, repeat first field: +
173: top field first: +, repeat first field: -
174: top field first: +, repeat first field: -
175: top field first: +, repeat first field: -
176: top field first: +, repeat first field: -
177: top field first: +, repeat first field: -
178: top field first: +, repeat first field: -
179: top field first: +, repeat first field: +
180: top field first: -, repeat first field: -
181: top field first: -, repeat first field: +
182: top field first: +, repeat first field: -
183: top field first: +, repeat first field: +
184: top field first: -, repeat first field: -
185: top field first: -, repeat first field: +
You can see that the video switches from soft-telecine to hard-telecine in frame 173. Then it switches back to soft-telecine in frame 179. But ffdshow doesn't output the correct flags for frame 179. This results in my IVTC algorithm detecting a break in the 3:2 cadence. With the correct flags there's no cadence break detected, and my algorithm walks right through the soft->hard->soft telecine switch.
madshi is offline   Reply With Quote
Old 11th December 2011, 10:42   #14325  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by madshi View Post
But if the stream is a mixture of soft- and hard-telecine (I mean if it switches between soft- and hard-telecine all the time), it fails to do IVTC properly.
Yeah, there are such difficult streams. I have not looked into the code detail, but I can imagine it's failing to detect the switching. I have too much to do, please wait.
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 11th December 2011, 11:10   #14326  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by haruhiko_yamagata View Post
Yeah, there are such difficult streams. I have not looked into the code detail, but I can imagine it's failing to detect the switching. I have too much to do, please wait.
Please don't misunderstand me. I couldn't care less about whether ffdshow's internal IVTC algorithm works or not. The only thing that bothers me is that if I tell ffdshow to *NOT* try to do IVTC, then it outputs wrong flags. The fix for that should be pretty easy. In this configuration ffdshow should not even try to detect the switching. It should just plain and simply output the video bitstream flags as they are. Nothing should be simpler than that.
madshi is offline   Reply With Quote
Old 11th December 2011, 14:20   #14327  |  Link
Blight
Software Developer
 
Blight's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 1,005
Quote:
Originally Posted by haruhiko_yamagata View Post
Thank you for testing that filter. I've been thinking of removal of the registration, but if you have any plan to use it, I'll fix it.
Hi,
I'm not sure what you mean by "removal of the registration".
I allow users to choose between FFDShow and VobSub for subtitle rendering in ZP.
I'm rewriting all the stream-selection code for v8.1 and encountered this bug.
__________________
Yaron Gur
Zoom Player . Lead Developer
Blight is offline   Reply With Quote
Old 11th December 2011, 14:42   #14328  |  Link
Reino
Registered User
 
Reino's Avatar
 
Join Date: Nov 2005
Posts: 693


Caused by Rev.4142? Rev.4127 didn't have this.


Btw, when I'm calling forth FFDShow's cubic interpolation deinterlacing filter through Avisynth;
Code:
ffdshow(options="isDeinterlace=1,deinterlaceAlways=1,deinterlaceMethod=2")
it works flawlessly in AvsP (GUI for Avisynth) and in any DirectShow player, but NOT in MPC-HC. Script error: there is no function named "ffdshow" is what I'm being shown. Are you developers familiar with this? (perhaps I should post this in MPC-HC's thread as well, because it initially concerns MPC-HC of course)
__________________
My hobby website

Last edited by Reino; 11th December 2011 at 15:15. Reason: typo within [code][/code]
Reino is offline   Reply With Quote
Old 11th December 2011, 15:03   #14329  |  Link
Reino
Registered User
 
Reino's Avatar
 
Join Date: Nov 2005
Posts: 693
Quote:
Originally Posted by clsid View Post
VC1 crash was fixed yesterday. It still randomly crashes while closing the player though.
I thought MPC-HC's code and FFDShow were pretty much identical, or at least have a lot simularities, but when I'm testing a 1280x720 60fps WMV[VC-1+WMA9.2]-file with MPC-HC's internal VC-1 decoder my cpu is @ ±10% utilization and plays absolutely smooth, while with the FFDShow DXVA Video Decoder it's @ ±50% and a bit choppy every now and then.
__________________
My hobby website
Reino is offline   Reply With Quote
Old 11th December 2011, 15:15   #14330  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by Blight View Post
Hi,
I'm not sure what you mean by "removal of the registration".
I allow users to choose between FFDShow and VobSub for subtitle rendering in ZP.
I'm rewriting all the stream-selection code for v8.1 and encountered this bug.
I have fixed the crash issue and dialog problem at rev 4137-4138.
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 11th December 2011, 19:40   #14331  |  Link
Thunderbolt8
Registered User
 
Join Date: Sep 2006
Posts: 2,197
when playing some VC-1 videos with the WMV DecoderDMO and ffdshow set to raw video (and LAVsplitter), the screen remains dark and playback doesnt start. it works fine though when deactivating ffdshow. why is this?

heres an example: http://www.mediafire.com/?vhxgz1qwxmc2u6b
__________________
Laptop Lenovo Legion 5 17IMH05: i5-10300H, 16 GB Ram, NVIDIA GTX 1650 Ti (+ Intel UHD 630), Windows 10 x64, madVR (x64), MPC-HC (x64), LAV Filter (x64), XySubfilter (x64) (K-lite codec pack)
Thunderbolt8 is offline   Reply With Quote
Old 12th December 2011, 04:37   #14332  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,646
Haruhiko, regarding the bug I posted earlier,

If you create a preset under ffdshow raw that does not have the same name as a preset under normal ffdshow then there is no default selected (nothing in bold) This is as I would expect.

If you click on create a new profile from selected, ffdshow crashes with an error in rundll32 and exits instead of throwing up an error that no profile is selected.

Also if you click on codecs while no preset is selected the rest of the menu items disappear.

Last edited by ryrynz; 12th December 2011 at 06:40.
ryrynz is offline   Reply With Quote
Old 12th December 2011, 09:42   #14333  |  Link
fano
Registered User
 
Join Date: Feb 2006
Posts: 41
Quote:
Originally Posted by nevcairiel View Post
Its not possible because none of the "HD" codecs have a free encoder available. You should rather go debug your audio setup, its certainly possible to stop windows from messing with it.
I'll try to use an example:
Yesterday I was playing (using Foobar it should be the best audio player, right?) one of these free to use flac multichannel audio clip:
http://www.2l.no/hires/index.html

then I decide to browse a little... Firefox I don't why likes to do a little "click"
... foobar is in the trash... and of the suber-uber audio session if it does "click" it's unuseful.

I do know there is a thing know as "Kernel Streaming" that should bypass windows mixer et all but... foobar after installing the KS plugin says that "I can't open device"

The only way to play a song in peace it's to use ffdshow or reclock "AC3 encode mode"... you agree it's pretty ridiculous to compress an HD lossless track to no hear the "click"
fano is offline   Reply With Quote
Old 12th December 2011, 13:09   #14334  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by CoRoNe View Post


Caused by Rev.4142? Rev.4127 didn't have this.
A Microsoft's DirectShow filter "AVI/WAV File Source" can somehow process avs file and output raw formats, but it cannot connect directly to a video renderer. I don't know if it is a intended feature by the AviSynth project or just a user's hack.
A week ago, I didn't believe that YV12 does not connect to a video renderer. This time I found the truth. As an intermediate filter, ffdshow or Microsoft's color space converter filter is needed.
I think All filters that can directly work with a video renderer can handle stride changes. Unfortunately AVI/WAV File Source cannot handle stride changes.
I hope this is the only exception that require dirty workaround. The code for this has been written (not committed yet).
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 12th December 2011, 13:15   #14335  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by ryrynz View Post
Haruhiko, regarding the bug I posted earlier,

If you create a preset under ffdshow raw that does not have the same name as a preset under normal ffdshow then there is no default selected (nothing in bold) This is as I would expect.

If you click on create a new profile from selected, ffdshow crashes with an error in rundll32 and exits instead of throwing up an error that no profile is selected.

Also if you click on codecs while no preset is selected the rest of the menu items disappear.
I see. The crash is reproduced.
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 12th December 2011, 13:28   #14336  |  Link
Blight
Software Developer
 
Blight's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 1,005
haruhiko_yamagata:
Thank you for the fix.
__________________
Yaron Gur
Zoom Player . Lead Developer
Blight is offline   Reply With Quote
Old 12th December 2011, 14:12   #14337  |  Link
Blight
Software Developer
 
Blight's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 1,005
Bug Report:
When using the VobSub COM interface with the "putParamStrW(IDFF_subFilename,FileName)", it doesn't update the IAMStreamSelect interface.
I expect it to only list the specified file, or add the specified subtitle file to the existing stream list (preferable).
Note that I'm using "putParam(IDFF_subAutoFlnm,False)" to enable the user-selected external sub-file.

More details:
If no auto-sub file is found by the ffdshow sub filter and one is manually loaded by the functions above, the IAMStreamSelect interface returns no streams whatsoever.

P.S.
The RAW and Subtitle filter instances seem to share the same registry location to save their settings. Is this intentional?
__________________
Yaron Gur
Zoom Player . Lead Developer

Last edited by Blight; 12th December 2011 at 14:28.
Blight is offline   Reply With Quote
Old 12th December 2011, 14:40   #14338  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by Thunderbolt8 View Post
when playing some VC-1 videos with the WMV DecoderDMO and ffdshow set to raw video (and LAVsplitter), the screen remains dark and playback doesnt start. it works fine though when deactivating ffdshow. why is this?

heres an example: http://www.mediafire.com/?vhxgz1qwxmc2u6b
The freeze is reproduced.
I don't know why though.
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 12th December 2011, 14:55   #14339  |  Link
haruhiko_yamagata
Registered User
 
Join Date: Feb 2006
Location: Japan
Posts: 1,560
Quote:
Originally Posted by CoRoNe View Post
Btw, when I'm calling forth FFDShow's cubic interpolation deinterlacing filter through Avisynth;
Code:
ffdshow(options="isDeinterlace=1,deinterlaceAlways=1,deinterlaceMethod=2")
it works flawlessly in AvsP (GUI for Avisynth) and in any DirectShow player, but NOT in MPC-HC. Script error: there is no function named "ffdshow" is what I'm being shown. Are you developers familiar with this? (perhaps I should post this in MPC-HC's thread as well, because it initially concerns MPC-HC of course)
I can reproduce. Old MPC works fine.
__________________
[ Download ffdshow | Wiki ]
haruhiko_yamagata is offline   Reply With Quote
Old 12th December 2011, 15:09   #14340  |  Link
clsid
*****
 
Join Date: Feb 2005
Posts: 5,643
AviSynth plugin loading issues can be solved by adding the plugin dir to %PATH%.
__________________
MPC-HC 2.1.7.2
clsid is online now   Reply With Quote
Reply

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

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 17:37.


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