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

Atak_Snajpera
30th December 2009, 22:40
Revision 3169 - Directory Listing
Modified Wed Dec 23 12:32:48 2009 UTC (7 days, 9 hours ago) by albain

H264 decoding fix with new Haali splitter

I really don't know why you did this? New haali does not see VC-1 streams in .m2ts container (I just tested). Also FFDshow is not used in Windows 7 during decoding AVC streams. Instead Microsoft decoder is used. Revision 3164 works without any problems and FFDshow is used.

NiFa
31st December 2009, 00:21
I have AC3 encoding problem with revision 3171 my receiver doesn't get signal from my HTPC, I haven't changed any settings in ffdshow, with revision 3154 theres no problem at all.
Seems that in revision 3171 I can't choose which multichannel device to use for sounds.

Gleb Egorych
31st December 2009, 11:03
I really don't know why you did this? New haali does not see VC-1 streams in .m2ts container (I just tested). Also FFDshow is not used in Windows 7 during decoding AVC streams. Instead Microsoft decoder is used. Revision 3164 works without any problems and FFDshow is used.
AFAIK it means ffdshow supports custom H.264 FOURCC introduced by new Haali splotter.

albain
31st December 2009, 14:52
I really don't know why you did this? New haali does not see VC-1 streams in .m2ts container (I just tested). Also FFDshow is not used in Windows 7 during decoding AVC streams. Instead Microsoft decoder is used. Revision 3164 works without any problems and FFDshow is used.

There is a new media type in new Haali splitter for h264 streams.

This is intended to be used third party codecs instead of MS codec that are forced to be used in W7.

This is the trick Haali & coreavc team found to make use of 3rd party codecs

This new revision adds support to this new media type (FCC actually)

Nyquist
31st December 2009, 15:58
I have AC3 encoding problem with revision 3171 my receiver doesn't get signal from my HTPC, I haven't changed any settings in ffdshow, with revision 3154 theres no problem at all.
Seems that in revision 3171 I can't choose which multichannel device to use for sounds.

Ok, looks like I'm not alone. It made me mad why there was no sound anymore.

_xxl
31st December 2009, 17:51
There is a regression in ffdshow audio part... If I seek in some avi files sound is lost.
EDIT:
Fixed by uninstall 3154 and then install 3178.

nautilus7
31st December 2009, 18:35
There is a new media type in new Haali splitter for h264 streams.

This is intended to be used third party codecs instead of MS codec that are forced to be used in W7.

This is the trick Haali & coreavc team found to make use of 3rd party codecs

This new revision adds support to this new media type (FCC actually)
Well, ffdshow can't connect to haali on my pc. I'm running win 7 x64 and I've been using latest version of each program.

albain
31st December 2009, 18:57
Well, ffdshow can't connect to haali on my pc. I'm running win 7 x64 and I've been using latest version of each program.

Weird, I have made some tests and sometimes it works sometimes it doesn't

About this regression, can you tell me from when it occurs (I remind that HD bitstream merges has been done in revision 3160) ?

crlorentzen
1st January 2010, 16:13
I have AC3 encoding problem with revision 3171 my receiver doesn't get signal from my HTPC, I haven't changed any settings in ffdshow, with revision 3154 theres no problem at all.
Seems that in revision 3171 I can't choose which multichannel device to use for sounds.

I find that my DTS passthrough doesn't work correctly with the latest builds, for some reason it shows up as AC3 (DOLBY DIGITAL) on my receiver. Plus there is a cosmetic bug with the AC3 passthrough checkbox, it may look unchecked but it is still passing through. Reverted to 3154 just like you and the issue is resolved. No setting changes or anything.

Glad to see I am not alone.

iron2000
2nd January 2010, 12:32
Enabling the Deband filter makes the video stutter for me, the video lags behind the audio.
I have no problem with the x86 version back in Windows XP though.

Using ffdshow x64 (3164) on Windows 7 Pro x64 with MPC-HC x64 (1.3.1448.0) + EVRCP.

Leak
2nd January 2010, 12:46
Enabling the Deband filter makes the video stutter for me, the video lags behind the audio.
I have no problem with the x86 version back in Windows XP though.

Using ffdshow x64 (3164) on Windows 7 Pro x64 with MPC-HC x64 (1.3.1448.0) + EVRCP.
Look at the player's CPU usage - I'm pretty sure there is no optimized 64 bit assembly code for DeBand, so it's CPU use will go through the roof, which in turn will cause exactly what you described...

np: Bibio - Bones & Skulls (The Apple And The Tooth)

albain
2nd January 2010, 13:35
There is a regression in ffdshow audio part... If I seek in some avi files with mono mp3, sound is lost.

I have too many things in parallel, could you have a look or help me out on that one ?

The only part of code that I changed concerning analog audio is the waveformatex structures management in TsampleFormat class but I dont see how this could affect seeking.
The right method would be to compare debugview logs between:thanks: working and non working build.

Thanks

albain
2nd January 2010, 13:38
I find that my DTS passthrough doesn't work correctly with the latest builds, for some reason it shows up as AC3 (DOLBY DIGITAL) on my receiver. Plus there is a cosmetic bug with the AC3 passthrough checkbox, it may look unchecked but it is still passing through. Reverted to 3154 just like you and the issue is resolved. No setting changes or anything.

Glad to see I am not alone.

Could you delete (after backing up) the ffdshow_audio registry key and retry with a recent build ?

iron2000
2nd January 2010, 16:13
Look at the player's CPU usage - I'm pretty sure there is no optimized 64 bit assembly code for DeBand, so it's CPU use will go through the roof, which in turn will cause exactly what you described...

np: Bibio - Bones & Skulls (The Apple And The Tooth)

Hmm, ok.
Its just as you say, it want up to 60+ on CPU with deband on.

By the way, what else is not x64 optimized yet?

rack04
2nd January 2010, 16:26
I have noticed in the last couple of builds that I have to select the decoder for h264 after install. It seems to not remember the selected decoder when I install.

dev84
2nd January 2010, 18:00
I have noticed in the last couple of builds that I have to select the decoder for h264 after install. It seems to not remember the selected decoder when I install.

I have the same thing.

clsid
2nd January 2010, 18:01
Will fix that asap.

pdubau
3rd January 2010, 02:38
0x80040207 means "VFW_E_NO_ACCEPTABLE_TYPES (There is no common media type between these pins.)" - did you enable "Raw video" on ffdshow's codecs page, i.e. set it to "all supported"?

np: Ricardo Villalobos - Dexter (Alcachofa)

I am tyring to use ffdshow raw video filter as a WME9 plugin and get the same error message. Is there a resolution to this issue, or is it just a dumb user error on my part?

crlorentzen
3rd January 2010, 04:20
Could you delete (after backing up) the ffdshow_audio registry key and retry with a recent build ?


DTS piano http://www.digital-digest.com/dvd/downloads/trailers.html#vob (1st column 3rd row)

ffdshow version - Receiver states (between each version I delete the entire GNU key under HKLM\SOFTWARE, install the new version, check Audio settings to ensure it has DTS Passthrough enabled.)

3154 - DTS (DTS SURROUND)
3164 - DD (Dolby Digital)
3175 - DD (Dolby Digital)

Return to 3154 - DTS

Windows XP (32-bit) SP3
ADI1985 on-board audio

Also tried full uninstall of ffdshow and re-install with 3175 after cleaning out all registry etc about ffdshow and got the same failure.

albain
3rd January 2010, 12:09
Ok thanks I will test your sample

albain
3rd January 2010, 12:50
Here is the first FFDShow beta (http://damienbt.free.fr/ffdshow_rev3171_20100103_dbt_dxva_beta1.exe) build that brings DXVA support

There is a separate decoder for DXVA that has by default a higher priority than FFDShow but DXVA is disabled (you have to enable it manually in the DXVA filter configuration)

However I have troubles to make it load automatically through DirectShow merit.
I managed to make it work by adding it manually as an external filter in MPCHC.
If someone has an idea...

There are a few things to fix such as removing the raw mediatypes

dann23
3rd January 2010, 13:08
installed your test version and i see with gspot that only MPEG2 is using DXVA. the rest are using the normal ffdshow. I don't know if that's a problem but I managed to make it work with wmp11. It works fine. CPU usage 3-5% and GPU usage 0% (maybe a bug in everest) The only problem is that seeking in WMP11 is not working. When I try to seek wmp11 freezes.

albain
3rd January 2010, 13:17
Yes this is the issue I am trying to resolve : FFDShow DXVA decoder is not loaded at all even if it has a higher merit.

I suspect the input mediatypes list is not correct.

As I said, it works if you use MPCHC and manually add FFDShow DXVA decoder in the external filters

Sebastiii
3rd January 2010, 13:57
Great :) i will test it quicly :)
Big Thx.

DigitalDeviant
3rd January 2010, 14:05
No problems here other than having to add it to external filters in MPCHC.

tetsuo55
3rd January 2010, 14:05
mpeg2???

Sebastiii
3rd January 2010, 14:29
This is my result :)

I have put ffdshow DXVA in external filter and checked it.

Case N°1 :
I start sample (DTS-MA.mt2s) :
ffdshow DXVA show up with (mouse on it) AVC1 libavcodec H264 -> output NV12 > the color is not good (blue color) and i have dropout with it and pop, i can check it with DPC tool.

Case N°2 :
I start sample MKV :
ffdshow DXVA show up with (mouse on it) AVC1 (DXVA 2 H264 -> output NV12 > the color is good and no dropout, i can check it with DPC tool.

I have try with haali splitter on m2ts sample and it's same of case n°1.

Thx,
Seb.

Edit : For sample in m2ts, i have try to set NV12 in ffdshow Video to see if i have the same color of ffdshow DXVA and the color switch to NV21,VU (it's a setting that is not in Output section) in NV21,VU the color is correct.

Sebastiii
3rd January 2010, 14:36
mpeg2???

Hi,

For me and like you say, in MPEG2 DXVA not enable.

albain
3rd January 2010, 14:57
This is my result :)

I have put ffdshow DXVA in external filter and checked it.

Case N°1 :
I start sample (DTS-MA.mt2s) :
ffdshow DXVA show up with (mouse on it) AVC1 libavcodec H264 -> output NV12 > the color is not good (blue color) and i have dropout with it and pop, i can check it with DPC tool.

Case N°2 :
I start sample MKV :
ffdshow DXVA show up with (mouse on it) AVC1 (DXVA 2 H264 -> output NV12 > the color is good and no dropout, i can check it with DPC tool.

I have try with haali splitter on m2ts sample and it's same of case n°1.

Thx,
Seb.

Edit : For sample in m2ts, i have try to set NV12 in ffdshow Video to see if i have the same color of ffdshow DXVA and the color switch to NV21,VU (it's a setting that is not in Output section) in NV21,VU the color is correct.

I have fixed that color issue : it is due to the fact that if DXVA is not supported it will switch to software decoding which is not what we want.
We want that FFDShow DXVA unloads and then FFDShow decoder takes the decoding in charge.

However I don't understand why it wouldn't work with m2ts

EDIT : I have a noob question about DXVA formats. H264 => OK, but what about VC1 ? I guess this corresponds to a derivate of H264 format or can it be found in WMV9-VC1 codec too ?

Sebastiii
3rd January 2010, 15:04
I have made log in case of :

DXVA2 MKV (http://sebinternet.free.fr/DXVA2MKV_OK.LOG)
and
DXVA M2TS (http://sebinternet.free.fr/DXVA2MKV_OK.LOG)

I'll make test in VC-1 :)

Sebastiii
3rd January 2010, 15:07
The sample i have HD-DVD.

Only ffdshow Video show up with : WVC1 Libavcodec VC1.

I don't know if help.
Seb.

dann23
3rd January 2010, 15:20
I have found something interesting. Movies encoded with high profile above L3.1 are not working with dxva and wmp11. they are working fine with MPCHC in dxva mode.I'm using windows xp and ati 3850 with the latest driver if that helps.

DigitalDeviant
3rd January 2010, 15:41
Hi,

For me and like you say, in MPEG2 DXVA not enable.

The DXVA decoders are basically the same as the ones in MPCHC and are based off of ffmpeg and there isn't one for MPEG2, afik. MPCHC uses libmpeg2 not ffmpeg for this.

albain
3rd January 2010, 16:18
About the samples that won't pass : I know why

There is a compatibility mode setting inside MPC (and also FFDShow). It is now set to max
I will add this setting to the UI

Also with the setting to max I get green artifacts on some videos so it is not intended to all.
Maybe MPC-HC team will tell us more about this

DTS piano http://www.digital-digest.com/dvd/downloads/trailers.html#vob (1st column 3rd row)

ffdshow version - Receiver states (between each version I delete the entire GNU key under HKLM\SOFTWARE, install the new version, check Audio settings to ensure it has DTS Passthrough enabled.)

3154 - DTS (DTS SURROUND)
3164 - DD (Dolby Digital)
3175 - DD (Dolby Digital)

Return to 3154 - DTS

Windows XP (32-bit) SP3
ADI1985 on-board audio

Also tried full uninstall of ffdshow and re-install with 3175 after cleaning out all registry etc about ffdshow and got the same failure.

This is a cosmetic bug that I just fixed but I do have sound. Is it your case ?

clsid
3rd January 2010, 17:35
The compatibility tweaks allows bypassing the max reference frames check and level check (and maybe other checks as well). This means that DXVA will get used for incompatible H.264 streams as well, causing decoding errors/artifacts.


A question regarding the audio dropout problems you guys are discussing: does this also occur with older versions of ffdshow in case of AC3/DTS?

Sebastiii
3rd January 2010, 18:53
@clsid

Yes older version too and not only with ffdshow but also with ac3filter.

Seb :)

albain
3rd January 2010, 19:31
Yes, this is not caused by FFDShow : I am 100% sure as I can reproduce the problem with VLC and MPC internal filters.

The problem disappear if I use the internal SPDIF output of my motherboard instead.

Emilot
3rd January 2010, 21:37
I am not sure but that was an older bug, with spdif out setting...

Which sound card do you have primary???

crlorentzen
3rd January 2010, 22:21
About the samples that won't pass : I know why

There is a compatibility mode setting inside MPC (and also FFDShow). It is now set to max
I will add this setting to the UI

Also with the setting to max I get green artifacts on some videos so it is not intended to all.
Maybe MPC-HC team will tell us more about this



This is a cosmetic bug that I just fixed but I do have sound. Is it your case ?

No sound. And same issue seen in the latest build, 3178. I don't think it is cosmetic that ffdshow is somehow mangling the bitstream so that it looks like an AC3 stream. And I am not surprised that a receiver would be unable to decode DTS when it is being told to connect the Dolby Digital decoder.

More details in case useful. I have a Soundmax AD1988b on-board sound card. Only one card. I do not see an issue using MPC codecs, either internal or standalone.

albain
3rd January 2010, 23:13
As I said, this is a cosmetic bug when FFDShow displays dolby digital instead of DTS.

It does encapsulate the bitstream under the DTS format, at least on my config.

Please post debugview logs as I can't reproduce it, unless another developer can

crlorentzen
3rd January 2010, 23:26
As I said, this is a cosmetic bug when FFDShow displays dolby digital instead of DTS.

It does encapsulate the bitstream under the DTS format, at least on my config.

Please post debugview logs as I can't reproduce it, unless another developer can

This is not an issue with what ffdshow shows, This is an issue with what ffdshow sends to my receiver when I select to have DTS passthrough enabled.

How would one collect these debugview logs?

I am guessing I need the microsoft debugview tool. And I tried enabling the "Output strings to debugger" option. Is that correct?

attached is what I get from the logs in both 3154 and 3178. (3154.txt, 3178.txt refer to the build number.)

Edit: as per albain uploaded to pastebin
3154 (http://pastebin.com/m2212484e)
3178 (http://pastebin.com/m1c9e059a)

hoborg
3rd January 2010, 23:40
Hi.
I am not sure how to post this problem correctly, but there seems to be some problem in FFDshow rev.3167 - it is causing d3d device lost durning chanel change in GB-PVR (http://forums.gbpvr.com/index.php) (and possible more software). No problem in older rev.3151 - i didnt tryed latest one.

From GB-PVR logs:
2010-01-03 21:58:40.937 ERROR hr failed
Error code : 88760868
D3DERR_DEVICELOST
Device lost

2010-01-03 21:58:40.937 ERROR CreateDevice() failed
Error code : 88760868
D3DERR_DEVICELOST
Device lost

Is there a way how to create FFDshow logs for more info?

It is analog signal and here is audio mediainfo:

Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Duration : 19mn 58s
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz

crlorentzen
4th January 2010, 00:27
Okay, so After much trial and error, I found that the issue is not actually in pass-through but, is a precedence issue where the AC3 encode option comes before, or somehow in the middle of, the pass-through option(s). I think it is an interaction between the pass-through setting, the AC3 encode setting and the Connect as PCM first setting.

1. DTS pass-through enabled, AC3 encode disabled, Connect as PCM first disabled - DTS fails, receiver sees Dolby Digital.
2. DTS pass-through enabled, AC3 encode disabled, Connect as PCM first enabled- DTS works fine.
3. DTS pass-through enabled, AC3 encode enabled, Connect as PCM first enabled - working Dolby Digital re-encode.
4. DTS pass-through enabled, AC3 encode enabled, Connect as PCM first disabled - non-working Dolby Digital

I skipped the four tests for DTS disabled as that is don't-care data for me.

If I disable AC3 Encode option DTS pass-through works fine. So workaround is to create a new profile for codec types: libdts and liba52, and in that profile enable pass-through and ensure that AC3 encode is disabled. Oh, and I also need connect as PCM first...don't know what this does.

Thanks for your help albain, perhaps my latest discovery will help to re-produce and correct the behavior so as to restore the functionality to 3154 levels.

DeathWolf
4th January 2010, 04:34
Putting this back on the table, but it would be wonderful if libass could be used for the subtitles rendering. It would be much more complete than the current renderer on SSA/ASS. It has come to the point where libass is not only fast but has almost complete compatibility with vsfilter(almost exactly the same rendering as vsfilter) with almost(all?) features supported.

Libass homepage:
http://code.google.com/p/libass/

Simple example of how libass is used:
http://repo.or.cz/w/libass.git/blob/HEAD:/test/test.c

NiFa
4th January 2010, 06:46
I tried different settings whit revision 3174, only way I got sound was to disable AC3 encoder, if it was enabled I got no sound from my receiver, with revision 3154 theres is no problem even if AC3 encoder is enabled.
What else I need to post that you can find what's wrong with newer revisions than 3154?
Under is ffdshow audio pinout info from MPC-HC when AC3 encoder is enabled.

Filter : ffdshow Audio Decoder - CLSID : {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}

- Connected to:

CLSID: {E30629D1-27E5-11CE-875D-00608CB78066}
Filter: SPDIF Interface (TX1) (VIA High
Pin: Audio Input pin (rendered)

- Connection media type:

Audio: 0x0092 48000Hz stereo 1536kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)

pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00 ..

- Enumerated media type 0:

Set as the current media type

- Enumerated media type 1:

Unknown

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: MEDIASUBTYPE_None {E436EB8E-524F-11CE-9F53-0020AF0BA770}
formattype: FORMAT_None {0F6417D6-C318-11D0-A43F-00A0C9223196}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 307200
cbFormat: 0

albain
4th January 2010, 09:32
Okay, so After much trial and error, I found that the issue is not actually in pass-through but, is a precedence issue where the AC3 encode option comes before, or somehow in the middle of, the pass-through option(s). I think it is an interaction between the pass-through setting, the AC3 encode setting and the Connect as PCM first setting.

1. DTS pass-through enabled, AC3 encode disabled, Connect as PCM first disabled - DTS fails, receiver sees Dolby Digital.
2. DTS pass-through enabled, AC3 encode disabled, Connect as PCM first enabled- DTS works fine.
3. DTS pass-through enabled, AC3 encode enabled, Connect as PCM first enabled - working Dolby Digital re-encode.
4. DTS pass-through enabled, AC3 encode enabled, Connect as PCM first disabled - non-working Dolby Digital

I skipped the four tests for DTS disabled as that is don't-care data for me.

If I disable AC3 Encode option DTS pass-through works fine. So workaround is to create a new profile for codec types: libdts and liba52, and in that profile enable pass-through and ensure that AC3 encode is disabled. Oh, and I also need connect as PCM first...don't know what this does.

Thanks for your help albain, perhaps my latest discovery will help to re-produce and correct the behavior so as to restore the functionality to 3154 levels.

Okay, thanks for your tests

This is indeed something I changed with HD audio bitstream but it is not related with bitstream : actually in earlier FFDshow revisions, FFDShow would post a PCM mediatype in all cases even if it will use SPDIF at the end.

This implementation didn't look correct to me as if the connection is accepted but not the spdif format (through dynamic reconnection), the decoding will fail.

I realize that this change brings more problems that it resolves.

I will put this option as checked by default and maybe it should be removed in the future.

@Nifa : try to check the "Connect as PCM first" in output section and tell us if this solves your problem, thanks

NiFa
4th January 2010, 11:56
@Albain: I already did that but it doesn't work, still the same problem.

albain
4th January 2010, 12:03
@crlorentzen : please put your logs elsewhere (pastebin.com for ex)

@hoborg : goto HKEY_CURRENT_USER\Software\GNU\ffdshow and create a DWORD value
Call it "allowDPRINTF" and set it to 1
Then you should be able to get debugview logs

@Nifa : the media structure you pasted seems okay, is it different from working builds ?
Otherwise please post debugview logs

hoborg
4th January 2010, 12:10
@hoborg : goto HKEY_CURRENT_USER\Software\GNU\ffdshow and create a DWORD value
Call it "allowDPRINTF" and set it to 1
Then you should be able to get debugview logs

Thanks for answer
I am not expert - this will generete some LOG output in to file?

NiFa
4th January 2010, 12:13
Here is same info when using revision 3154:

Filter : ffdshow Audio Decoder - CLSID : {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}

- Connected to:

CLSID: {E30629D1-27E5-11CE-875D-00608CB78066}
Filter: SPDIF Interface (TX1) (VIA High
Pin: Audio Input pin (rendered)

- Connection media type:

Audio: 0x0092 48000Hz stereo 1536kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)

pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00 ..

- Enumerated media type 0:

Set as the current media type

- Enumerated media type 1:

Unknown

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: MEDIASUBTYPE_None {E436EB8E-524F-11CE-9F53-0020AF0BA770}
formattype: FORMAT_None {0F6417D6-C318-11D0-A43F-00A0C9223196}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 307200
cbFormat: 0


How do I get debuglog from ffdshow?

albain
4th January 2010, 12:44
First you have to download debugview (google it)

Then in FFDShow video configuration, goto info & cpu section and check "send output strings to debugger"

Then launch debugview before playing the video and that's all

NiFa
4th January 2010, 13:04
Where I should put the log files?

SamuriHL
4th January 2010, 13:07
Go to www.pastebin.com and send it up there and paste the download link here.

NiFa
4th January 2010, 13:13
Ok, here are the debuglogs:

Debuglog from revision 3154 (http://pastebin.com/f26c11466)
Debuglog from revision 3174 (http://pastebin.com/f60f832a9)

Frans
4th January 2010, 15:45
I have a tiny request... resize by specifying the vertical size only (right now ffdshow have specify horizontal size). I ask this because I want to resize video content that have smaller aspect ratio than my monitor to the exact vertical resolution of my monitor. Example is resizing 640x480 to 1400x1050, 720x480 to 1575x1050.
It would be even better if there's an option to resize the content to the nearest screen resolution without adding the black bars. Current ffdshow resize to screen resolution will add black bars if the content doesn't match the screen aspect ratio, thus throwing off the aspect ratio that is embedded within the source which resulted in subtitle not being displayed at the correct place unless you use ffdshow subtitle and put it before resize which make the sub not as sharp as when the subtitle filter is placed after the resize.

albain
4th January 2010, 16:04
Ok, here are the debuglogs:

Debuglog from revision 3154 (http://pastebin.com/f26c11466)
Debuglog from revision 3174 (http://pastebin.com/f60f832a9)

Okay, there is this :
TffdshowDecAudio::StartStreaming Audio renderer replaced successfully

This is a feature that I removed because it was buggy : in output section you had the possibility to select a multichannel device that is not the default audio endpoint if the input stream is multichannel.

In fact FFDShow after starting streaming would stop the graph and will disconnect the audio renderer and load the selected one.

This "hack" caused many stability problems (crashes), which is why I removed it.

You should make sure that the default audio endpoint selected in windows is the same as the one you selected in FFDShow rev 3054.

As this is a 3 channels stream that you outputted in SPDIF format, the default audio endpoint should be SPDIF or HDMI.

albain
4th January 2010, 16:08
Otherwise, there is a problem in recent builds with crop filter, someone changed it ?

On some videos, under 15% set of vertical cropping, nothing occurs.

But if I set 15 then it works (at 15%).

I experience this issue on MKV under windows media center (on windows 7). Didn't try other players for now

ipanema
4th January 2010, 16:21
When using the ffdshow video encoder, the maximum setting of the bitrate slider is 10000 kbps. Is is possible to set this higher?

Typing a higher value into the bitrate edit box makes it go red.

I'm using ffdshow v3048

albain
4th January 2010, 16:58
Here is a new DXVA build.

Changes :

The FFDShow DXVA decoder will unload if the DXVA decoding is disabled
The FFDShow DXVA decoder will not complete connection (and will be unloaded) if the DXVA format is not supported (instead of switching to software decoding mode)
Added a compatibility combobox in the DXVA options.


Todo : a few cosmetic changes (remove internal filters list which is empty), code cleaning.

http://www.mediafire.com/file/zznf0tndyxe/ffdshow_rev3180_20100104_dbt_dxva_beta2.exe

dann23
4th January 2010, 17:37
Hello. With beta2 I can play all the movies, but I have to choose Ignore number of reference frames . For me it remains the problem with seeking in wmp11. thank you for your work.

NiFa
4th January 2010, 17:42
Okay, there is this :
TffdshowDecAudio::StartStreaming Audio renderer replaced successfully

This is a feature that I removed because it was buggy : in output section you had the possibility to select a multichannel device that is not the default audio endpoint if the input stream is multichannel.

In fact FFDShow after starting streaming would stop the graph and will disconnect the audio renderer and load the selected one.

This "hack" caused many stability problems (crashes), which is why I removed it.

You should make sure that the default audio endpoint selected in windows is the same as the one you selected in FFDShow rev 3054.

As this is a 3 channels stream that you outputted in SPDIF format, the default audio endpoint should be SPDIF or HDMI.
My default audio output is VIA High defination audio spdif interface (TX1), which is same one that I use with 3154 as multichannel device.
Is there anything else which could cause the problem? I have installed latest drivers for my soundcard.

EDIT: I tried revision 3179 from xvidvideo.ru, but I still do have same problem.

albain
4th January 2010, 18:30
Hello. With beta2 I can play all the movies, but I have to choose Ignore number of reference frames . For me it remains the problem with seeking in wmp11. thank you for your work.

Seeking works under MPC-HC ?

@NiFa : for now I don't have anymore ideas but that shouldn't be very complicated if we have a working build

dann23
4th January 2010, 18:30
I also see a green top band on some movies.

dann23
4th January 2010, 18:36
Seeking works under MPC-HC ?

@NiFa : for now I don't have anymore ideas but that shouldn't be very complicated if we have a working build

no. the same problem. for you it's working?

NiFa
4th January 2010, 20:30
@NiFa : for now I don't have anymore ideas but that shouldn't be very complicated if we have a working build
It would be nice if someone could figure out where the problem lies, so I and others who have same problem could use newer revisions also and not only up to 3154. Hopefully it's not a big problem and is easy to fix.

albain
4th January 2010, 20:31
no. the same problem. for you it's working?

There is a bug in this build.
Please don't use it anymore. I will post a new one very soon

EDIT : actually there are 2 bugs, I also have a problem with seeking

albain
5th January 2010, 08:21
@crlorentzen, Nifa : I didn't see crlorentzen's post earlier about the AC3 encode mode option.

When this option is unchecked, DTS passthrough works, right ?

The problem is narrowed down to this option which should be easier to digg around

albain
5th January 2010, 09:16
@crlorentzen, Nifa : could you please retest with this new build with AC3 encode mode checked and then checked ?

I added a new traces and also changed a few things. I don't expect that the things I changed make this work but why not.
Still, the additional traces should tell us more about the problem.

So if this doesn't work, please paste again debugview logs with AC3 encode unchecked and then checked.

You may get stutterring because there will be many more traces.

Now, about DXVA
This new build also fixes the yesterday bug (DXVA2 could not work unlike DXVA1).
However, I still can't seek, don't know why. I will work on this later.

Here is the link (http://www.mediafire.com/file/1qq11n2mbzn/ffdshow_rev3180_20100104_dbt_dxva_beta3.exe)

Snowknight26
5th January 2010, 09:37
http://ffdshow-tryout.svn.sourceforge.net/viewvc/ffdshow-tryout/trunk/src/dialog/Coutsfs.cpp?annotate=3180&pathrev=3180#l62

Line 62 could use some work in the grammar department.

NiFa
5th January 2010, 09:53
@Albain: Here are to debuglogs with AC3 encoder enabled and disabled.
AC3 encoder enabled (http://pastebin.com/f6efb7147)
AC3 encoder disabled (http://pastebin.com/f50ea349b)

Now I get sound even when AC3 encoder is enabled, there seems to be hope that this problem can be solved.

albain
5th January 2010, 16:23
@Albain: Here are to debuglogs with AC3 encoder enabled and disabled.
AC3 encoder enabled (http://pastebin.com/f6efb7147)
AC3 encoder disabled (http://pastebin.com/f50ea349b)

Now I get sound even when AC3 encoder is enabled, there seems to be hope that this problem can be solved.

Okay, so this is working ?

buzzqw
5th January 2010, 16:31
Hi albain

i have a nvidia gt240 that support vc1/h264 AND mpeg4/mpeg2, i will gladly do some test on dxva if you like
(my specs are Intel e8400, win7 32bit, gt240, amply: yahama 663 )

BHH

dann23
5th January 2010, 21:35
with beta 3 I can't play any of my movies. they are not starting. the same behavior for wmp11 and mpchc.

NiFa
5th January 2010, 21:59
Okay, so this is working ?
Yes, it works, but I got heavy stuttering, just as you said I might get, in your earlier post.

Redsandro
6th January 2010, 01:02
Random question: Is there a recommended SVN version on the sourceforge download page? I do like some stability but the latest stable build is from 2008.

crlorentzen
6th January 2010, 03:54
@crlorentzen, Nifa : could you please retest with this new build with AC3 encode mode checked and then checked ?

I added a new traces and also changed a few things. I don't expect that the things I changed make this work but why not.
Still, the additional traces should tell us more about the problem.

So if this doesn't work, please paste again debugview logs with AC3 encode unchecked and then checked.

You may get stutterring because there will be many more traces.

Now, about DXVA
This new build also fixes the yesterday bug (DXVA2 could not work unlike DXVA1).
However, I still can't seek, don't know why. I will work on this later.

Here is the link (http://www.mediafire.com/file/1qq11n2mbzn/ffdshow_rev3180_20100104_dbt_dxva_beta3.exe)

3180 works, I get sound with DTS pass-through and AC3 encode enabled, AC3 re-encode is sent to the receiver. Disable AC3 encode and we get the better DTS pass-through.

We still need to work on an order of operations/precedence issue, pass-through should override the AC3 Encode option.

Looking better though.

iron2000
6th January 2010, 09:44
Will wait for a 64-bit DXVA ffdshow.

albain
6th January 2010, 10:25
Hi again,

here is a new *all-in-one* beta build :
http://damienbt.free.fr/ffdshow_rev3181_20100104_dbt_dxva_beta4.exe

1/ DXVA fix : there was a deadlock in the flushing that blocked the seeking. Now this is fixed.

2/ DTS passthrough fix in AC3 encode mode

I removed the debug traces that I added before.

However you should uncheck the "send output debug string" option in FFDShow video configuration.

Please report if both are working (DXVA & DTS)

NiFa
6th January 2010, 11:32
I can't get DXVA to work, I get bad framedrop about every 2 seconds. Also I can't disable DXVA decoder, it's seems to be forced ON despite what I try to do.

albain
6th January 2010, 11:46
I can't get DXVA to work, I get bad framedrop about every 2 seconds. Also I can't disable DXVA decoder, it's seems to be forced ON despite what I try to do.

I can't reproduce your problems

If you uncheck H264 and VC1 boxes in FFDshow DXVA configuration > Hardware acceleration then it won't be used.

Also, note that the tray icons are different : the DXVA tray icon is orange whereas the classic video is red.

Lastly, some videos are not compatible with DXVA but will still be loaded if you set the compatibility option to max (ignore number of reference frames) and in that case you will get artifacts or weird results

Lastly (2), you don't have to force FFDShow in MPC > optoins > external filters. You should remove any of these.

By default FFDShow dxva has the same merit as video + 1.

The best approach to play with the presets is the following.

Let's say that you want DXVA to be used for 1080p and not for the others

1/ FFDshow DXVA config : define a default preset with H264/VC1 unchecked and enable presets autoload feature
2/ FFDShow DXVA config : define a HD preset loaded if input resolution is >= 1920x1080 and with H264/VC1 checked
3/ FFDShow video config : nothing to do apart enabling H264 decoding

NiFa
6th January 2010, 12:00
I tried to disable DXVA by unchecking H264 and VC1 boxes, but ffdshow videodecoder still says that input FOURCC is AVC1 and decoder is libavcodec h264. I have disabled both also from videodecoder codecs, but I still can't get MPC-HC to use coreavc which I normally use.

albain
6th January 2010, 12:23
That's what I suspected : FFDShow DXVA is not loaded, probably because FFDShow video has a higher merit.

You can use a tool called DSFMGR (google it) : launch it in administrator mode (right click).

Sort by merit and check who has a higher priority. You can change them.

If you want coreAVC to be used you should put it on top (or use alternate codec feature of FFDShow, ask me about it if necessary)

Sebastiii
6th January 2010, 13:18
Hi,

I can't test @ work, my card don't have HW DXVA, i 'll test it @ home :) but again thx for your work :).
Seb :)

_xxl
6th January 2010, 13:19
For an unknown reason I had to uninstall older version of ffdshow 3154 and then to reinstall 3178. That fixed an issue that I had experienced when seeking mpc-hc it just used 100% of my cpu and the player didn't responded to any commands. Maybe ffdshow installer should uninstall first older version? Or just to have a option that let user to do so?

NiFa
6th January 2010, 13:28
Ok, I got coreAVC to work. Now only problem I have is DTS passthrough when playing DVD's (AC3 soundtracks play just fine), my receiver does get to DTS flag but it flickers whole time and I don't get sound at all.

fastplayer
6th January 2010, 13:28
For an unknown reason I had to uninstall older version of ffdshow 3154 and then to reinstall 3178. That fixed an issue that I had experienced when seeking mpc-hc it just used 100% of my cpu and the player didn't responded to any commands. Maybe ffdshow installer should uninstall first older version? Or just to have a option that let user to do so?
Maybe ffdshow.ax was in use resp. locked and couldn't be updated. Did you do a reboot after installing 3178?

_xxl
6th January 2010, 13:32
Maybe, but I had installed ffdshow in program files after I had compiled ffdshow.ax.

albain
6th January 2010, 14:04
Ok, I got coreAVC to work. Now only problem I have is DTS passthrough when playing DVD's (AC3 soundtracks play just fine), my receiver does get to DTS flag but it flickers whole time and I don't get sound at all.

Okay, you didn't experience this in rev 3154 ?

NiFa
6th January 2010, 14:18
No, only with newer revisions, with 3154 everything works.

albain
6th January 2010, 14:34
@xxl, clsid : do you guys experience the same issue with DTS ?

Because I can't reproduce it, it would be helpful if one of you could take a look, thanks

crlorentzen
6th January 2010, 14:36
Hi again,

here is a new *all-in-one* beta build :
http://damienbt.free.fr/ffdshow_rev3181_20100104_dbt_dxva_beta4.exe

1/ DXVA fix : there was a deadlock in the flushing that blocked the seeking. Now this is fixed.

2/ DTS passthrough fix in AC3 encode mode

I removed the debug traces that I added before.

However you should uncheck the "send output debug string" option in FFDShow video configuration.

Please report if both are working (DXVA & DTS)

DTS pass-through with AC3 encode and Compatibility mode, still re-encodeded AC3 (I hear sound but it is Doldby Digital). I can see about logs tonight/tomorrow.

NiFa
6th January 2010, 14:54
I got DTS passthrough to work, for some reason mpc-hc's audio switcher was disabled, when I enabled it DTS passtrough started to work without any problems.

fastplayer
6th January 2010, 14:58
Are "Max. amplification", "Regain volume", and "Reset on seek" in any way dependent on the "Normalize" option? For instance, does "Normalize" need to be enabled for "Regain volume" to work?

clsid
6th January 2010, 15:29
@albain
Unfortunately, I don't have a receiver, so I can't test any S/PDIF related stuff.

@fastplayer
Yes, those three settings apply only when normalization is active.

fastplayer
6th January 2010, 15:36
@fastplayer
Yes, those three settings apply only when normalization is active.
OK, then for better usability, they should be grayed-out when "Normalization" is off. Or the "Normalization" check box should be automatically switched on when one of the sub items is being enabled.

dann23
6th January 2010, 15:59
with beta3 and beta4 I can't play my movies with dxva. the codec is loaded (the icons from systray) but the movie doesn't start.

_xxl
6th January 2010, 16:02
@albain

Sorry I can't you help with that, because I can't test S/PDIF.

tal.aloni
6th January 2010, 16:55
@albain

I can test AC3 / DTS passthrough,

I'll try with the latest revision later, I didn't have any DTS issues earlier when I checked "connect as PCM first".

roytam1
6th January 2010, 17:12
with beta3 and beta4 I can't play my movies with dxva. the codec is loaded (the icons from systray) but the movie doesn't start.

for me the situation is even worse. stream from dvbviewer and files that can play with mpc video decoder(I checked DXVA only) don't connect with ffdshow DXVA decoder.

dann23
6th January 2010, 18:33
for me the situation is even worse. stream from dvbviewer and files that can play with mpc video decoder(I checked DXVA only) don't connect with ffdshow DXVA decoder.

windows xp? :)

albain
6th January 2010, 20:36
@albain

I can test AC3 / DTS passthrough,

I'll try with the latest revision later, I didn't have any DTS issues earlier when I checked "connect as PCM first".

Ok, thanks Tal

VipZ
6th January 2010, 22:12
@ albain

I have tested S/PDIF for you,
ffshow rev 3179 x64, DTS/AC3 passthough no issue, but AC3 encode doesn't work, Speakers show as DD stream but no sound.
ffdshow_rev3181_20100104_dbt_dxva_beta4, everything works perfectly.

If you need any more tests let me know.

albain
6th January 2010, 23:32
Thanks, I believe that the problem has been fixed.

I have not committed the changes yet, waiting for other confirmations

crlorentzen
7th January 2010, 02:10
@ albain

I have tested S/PDIF for you,
ffshow rev 3179 x64, DTS/AC3 passthough no issue, but AC3 encode doesn't work, Speakers show as DD stream but no sound.
ffdshow_rev3181_20100104_dbt_dxva_beta4, everything works perfectly.

If you need any more tests let me know.

In my testing with ffdshow_rev3181_20100104_dbt_dxva_beta4 the DTS track is not sent in pass-through...e.g. the receive gets a re-encoded Dolby Digital track. VipZ, when you did this test did your receiver show the input as DTS or did it show as Dolby Digital?

Another test, disable the AC3 encode option, keep pass-through enabled, check if the receiver shows anything different.

You may also notice that the Info and CPU section shows that ffdshow is doing work whereas normally when pass-through occurs this page is empty.

The remaining issue is that pass-through settings should take precedence. The issue that has been fixed is that no sound was heard.

roytam1
7th January 2010, 04:35
windows xp? :)

unfortunately yes.

VipZ
7th January 2010, 11:58
In my testing with ffdshow_rev3181_20100104_dbt_dxva_beta4 the DTS track is not sent in pass-through...e.g. the receive gets a re-encoded Dolby Digital track. VipZ, when you did this test did your receiver show the input as DTS or did it show as Dolby Digital?

Another test, disable the AC3 encode option, keep pass-through enabled, check if the receiver shows anything different.

You may also notice that the Info and CPU section shows that ffdshow is doing work whereas normally when pass-through occurs this page is empty.

The remaining issue is that pass-through settings should take precedence. The issue that has been fixed is that no sound was heard.

DTS shows as DTS and AC3 shows as DD with or without encoding. The info screen is as it should be.
I am not using passthough via HDMI, it goes via my sound card. I have Win 7 x64 and Logitech Z-5500 Speakers if that helps.

rsd78
7th January 2010, 19:37
@Albain,

Sorry to bother you as I know you are busy doing some great work in a variety of areas here, but I was just curious if you still think you'll be able to implement DXVA with some postprocessing (Subtitles and ff/rew are the key features I'm looking for) in ffdshow?

Thanks again

albain
7th January 2010, 19:59
@Albain,

Sorry to bother you as I know you are busy doing some great work in a variety of areas here, but I was just curious if you still think you'll be able to implement DXVA with some postprocessing (Subtitles and ff/rew are the key features I'm looking for) in ffdshow?

Thanks again

DXVA subtitles are next step, but ff/rw have nothing to do with DXVA.

Media Control should work with FFDShow DXVA filter.

About DXVA postprocessing in general, we all lack of knowledge to say what is possible and what is not : resize, crop, noise reduction,...

rsd78
7th January 2010, 20:18
DXVA subtitles are next step, but ff/rw have nothing to do with DXVA.

Media Control should work with FFDShow DXVA filter.

About DXVA postprocessing in general, we all lack of knowledge to say what is possible and what is not : resize, crop, noise reduction,...

Thanks again Albain, can't wait!

crlorentzen
7th January 2010, 21:46
DTS shows as DTS and AC3 shows as DD with or without encoding. The info screen is as it should be.
I am not using passthough via HDMI, it goes via my sound card. I have Win 7 x64 and Logitech Z-5500 Speakers if that helps.

Hello VipZ, do you use the Connect as PCM first option?

VipZ
7th January 2010, 21:55
Hello VipZ, do you use the Connect as PCM first option?

Hi, I tested with and without, it doesn't seem to make any difference for me.

albain
7th January 2010, 22:40
@developers

The merit cannot be set anymore in Vista/Windows7 (in the directshow control dialog) because of UAC.

Do you know if this is possible to request a privilege leverage to write into registry (in HKEY_LOCAL_MACHINE where the merits are set) ?

madshi
7th January 2010, 22:56
If you need admin rights, you have only three options, I think:

(1) Ask the user for an admin's user name and password, then you can use LogonUser + ImpersonateLoggedOnUser.
(2) Add a specific "need admin rights" manifest to an exe file and call the exe. Then Windows will automatically ask the user to confirm running the exe with admin rights.
(3) Same as (2), but instead of needing an exe with a manifest, you could start "myOwnProcess.exe" (e.g. mplayerc.exe) with admin rights by using this trick: http://blogs.msdn.com/vistacompatteam/archive/2006/09/25/771232.aspx

All three are not really nice. Probably (2) or (3) would be preferable from a UI point of view. If you want to do this from within ffdshow, you can't rely on the exe cooperating with you. So you'd need a separate exe for this stuff.

SamuriHL
7th January 2010, 22:58
Yea, I would spawn a new process that asks the user for the rights needed to set it. That's the "cleanest" approach.

EDIT:

http://code.msdn.microsoft.com/elevatedprivilegeuac

I don't know if that helps at all, but, it at least gives you the options I guess.

albain
7th January 2010, 23:09
Okay, thanks, this is not very appealing. This means that one should deliver an exe with command line arguments...

Otherwise, I will commit tomorrow my modifications if this is okay (that are reflected by the last beta I posted)

- New DXVA decoder : nothing changed since last beta except that I removed the hide/show filters dialog which is useless for now as long as there is no internal filters available.

- Several fixes on the audio part : DTS-HD, DTS not working with AC3 encode check, and a few other stuff

- Project files, translation files updated

- Innosetup script updated

SamuriHL
7th January 2010, 23:14
Okay, thanks, this is not very appealing. This means that one should deliver an exe with command line arguments...


Yea, you're right, it's not appealing at all. But this is the brave new world MS forces everyone into. I'm more or less glad to be removed from windows programming these days so I don't have to deal with this nonsense. :D Nonetheless, a small command line app makes sense. Then you can call it from ffdshow and it will prompt the user for elevation. This keeps ffdshow itself from needing to be elevated which is a good thing.

tal.aloni
7th January 2010, 23:43
@albain
1. I have no issues with AC3 / DTS passthrough when using ffdshow_rev3181_20100104_dbt_dxva_beta4.exe.

2. there's an issue with the DXVA video decoder: I was able to load beta 1 or 2 manually via graphedit, and only for VMR9, but I can't do it for beta 4, and I couldn't get any of them to load automatically. (AVC acceleration checked)
also, when I disable AVC for the non-dxva ffdshow video decoder, it's still getting used. this doesn't happen with 3176 from the trunk.

if you need help debugging, let me know.

p.s.
I'm using Windows XP x64.

crlorentzen
8th January 2010, 00:47
ffdshow_rev3181_20100104_dbt_dxva_beta4.exe me again, still DTS pass-through not working with AC3-Encode enabled. I get Dolby Digital re-encode, I also get DD re-encode for AC3 tracks too.

debugging strings in case they help. Sorry to be such a stickler when no one else seems to be able to reproduce anymore.

AC3 encode unchecked (http://pastebin.com/m65fca293)
AC3 encode checked (DTS pass-through fails) (http://pastebin.com/m2712e96b)

Testing done with same dtspiano.vob as always.

Noticeable differences

working

WAVEFORMATEX :
wFormatTag : WAVE_FORMAT_EXTENSIBLE
Channels : 6
Bits per sample : 16
Samples per second : 48000
nBlockAlign : 12
nAvgBytesPerSec : 576000

TffdshowDecAudio::CheckInputType
TffdshowDecAudio::getCodecId
TffdshowDecAudio::getCodecId: codecId=libdts (1500)
TffdshowDecAudio::getOutsf PCM 8
TffdshowDecAudio::getMediaType sample format 1
TffdshowDecAudio::getMediaType:48000 Hz, 6 channels 16-bit integer
...
TaudioCodecBitstream::init

Nonworking

WAVEFORMATEX :
wFormatTag : Dolby AC3 SPDIF
Channels : 2
Bits per sample : 16
Samples per second : 48000
nBlockAlign : 4
nAvgBytesPerSec : 192000

TffdshowDecAudio::CheckInputType
TffdshowDecAudio::getCodecId
TffdshowDecAudio::getCodecId: codecId=libdts (1500)
TffdshowDecAudio::getOutsf PCM 8
TffdshowDecAudio::getMediaType sample format 16
TffdshowDecAudio::getMediaType:48000 Hz, 6 channels ac3
...
never see TaudioCodecBitstream::init

NiFa
8th January 2010, 02:11
I stopped to try new revs. because AC3 encoder + DTS passthrough still doesn't work and there seemed also be some problems with videodecoder, it uses way more CPU than 3154 and caused stuttering.
I want also watch my videos, not only test different revision all to time. If you get it work I'm happy, but I will take little break from testing, I will help with testing again when I have enought willpower and patience to do so.

Jeremy Duncan
8th January 2010, 05:48
I must ask these two seemingly simple questions.
1. Which yasm do I use if I'm using the mingw or visual studio pro 2008 and vista 32 bit?

It seems to work until the last part of compiling if I use the cygwin yasm.exe.

I uncheck yasm from the custom configuration in visual studio and in the directory point to where the cygwin yasm is and it compiles ffdshow but still has an error.
Otherwise if I use the win32 yasm.exe it won't even start to compile ffdshow.

Same if I use icl11, same problem that changes if I use the cygwin yasm or not.

2. Where oh where do I put the yasm.exe if I'm using mingw, visual studio 2008, or icl11?

3. I looked for the file in the src to set cc=gcc but I don't know where to set that, which file do I set that in and where in that file?
I ask because I can't compile with mingw ffdshow custom from the ffdshow wiki and I think it's because I have to set the cc=gcc and the wiki didn't tell me where to set it.

:thanks:

12>------ Build started: Project: ffdshow, Configuration: Release Unicode Win32 ------
12>yasm assembling c:\Users\b\Desktop\ffdshow-tryout\branches\ffmpeg-mt\src\cpuid.asm
12>yasm: FATAL: Could not open input file
12>Project : error PRJ0002 : Error result 1 returned from 'C:\Windows\system32\cmd.exe'.

The yasm.exe is in the C:\Program Files\Microsoft DirectX SDK (August 2009)\Utilities\Bin\x86 folder
I'm using the win32 yasm version 8.
visual studio 2008 pro is in admin mode.

albain
8th January 2010, 08:46
@albain
1. I have no issues with AC3 / DTS passthrough when using ffdshow_rev3181_20100104_dbt_dxva_beta4.exe.

2. there's an issue with the DXVA video decoder: I was able to load beta 1 or 2 manually via graphedit, and only for VMR9, but I can't do it for beta 4, and I couldn't get any of them to load automatically. (AVC acceleration checked)
also, when I disable AVC for the non-dxva ffdshow video decoder, it's still getting used. this doesn't happen with 3176 from the trunk.

if you need help debugging, let me know.

p.s.
I'm using Windows XP x64.

Hi Tal, thanks for you tests
Concerning the DXVA decoder, you probably couldn't load it because the videos you tried are not compatible with DXVA.
Still there there is a compatibility option that was set to max in betas 1 & 2 and that is modifyable in beta 4 but default is set to minimum.
So if you raise that option to "ignore reference frames", that will probably pass.

tal.aloni
8th January 2010, 09:45
@albain,
you're right,
I can get the decoder to load when ignoring the number of ref. frames,
however, all of the videos tested are L4.1 compatible, and support DVXA.

also, I'm now getting black screen with the DXVA decoder instead of playback, I have tried several renderers.

albain
8th January 2010, 10:17
ffdshow_rev3181_20100104_dbt_dxva_beta4.exe me again, still DTS pass-through not working with AC3-Encode enabled. I get Dolby Digital re-encode, I also get DD re-encode for AC3 tracks too.

debugging strings in case they help. Sorry to be such a stickler when no one else seems to be able to reproduce anymore.


Thank you for your logs. I think I have found why it works for some people and not for you : it depends on your audio card that may not accept the SPDIF formats so I may have to send it anyway without checking wether it accepts them or not. There is still something I don't understand.
To confirm this, I have made another test build

Could do the following tests :
1/ New build with AC3 encode checked
2/ Old build (revision 3154 for ex, before HD bitstream) with AC3 encode checked

Here is the link to the new build (http://www.mediafire.com/file/njxru1bmmdu/ffdshow_rev3183_20100105_dbt_dxva_beta5.exe)

Thanks

@Tal : the video may be displayed on another display. Do you have multiple displays ?
Otherwise you can try with MPC-HC : just disable H264 & VC1 internal filters that should work because FFDShow will look for the MPC-HC windows handle.
I guess that I will have to add other window handles detections.

tal.aloni
8th January 2010, 10:32
@albain
I also tested it within MPC-HC (VMR9), same problem, playback position stays on 00:00 and I'm seeing a black video window.

albain
8th January 2010, 10:51
@albain
I also tested it within MPC-HC (VMR9), same problem, playback position stays on 00:00 and I'm seeing a black video window.

Okay VMR9 won't work, you need to enable EVR

To be sure that your config is okay, you can enable H264 & VC1 DXVA internal decoders of MPC HC and when you play a video,

go to Play > Filters > MPC video renderer.

If you get "Not using DXVA", then it means that there is a problem with your config

VipZ
8th January 2010, 11:11
@ albain

I have tested DXVA from beta 4 for you, initially it didn't auto load, both ffdshow and DXVA had same merit. After correcting, all my video's are pretty much in night vision, with MPC they are all fine and setting compatibility options made no difference.
I was using EVR CP.
Do you need me to run any tests?

albain
8th January 2010, 12:29
@ albain

I have tested DXVA from beta 4 for you, initially it didn't auto load, both ffdshow and DXVA had same merit. After correcting, all my video's are pretty much in night vision, with MPC they are all fine and setting compatibility options made no difference.
I was using EVR CP.
Do you need me to run any tests?

Thanks, I think we will have to do something about the filters merit setting otherwise this feature will become useless.

I am okay with the tests, I am just waiting for new logs concerning DTS.

Leak
8th January 2010, 12:51
Okay, thanks, this is not very appealing. This means that one should deliver an exe with command line arguments...
Can't you just execute rundll32 elevated and have it call some separate entrypoint in ffdshow.ax for setting the merit?

albain
8th January 2010, 13:25
Can't you just execute rundll32 elevated and have it call some separate entrypoint in ffdshow.ax for setting the merit?

Not working (error raised)

VipZ
8th January 2010, 13:39
Albain, I did more investigating on the merit issue. For my PC I just installed beta 4 over my old copy which resulted in both having a merit of 0xFF800001, Then I did a clean test in a VM and I got 0xFF800001 for Video and 0xFF800002 for DXVA.

I am not sure if this is already done, but maybe on upgrade scenarios during the installation, the old ffdshow.ax could be unregistered before installing and registering the new ffdshow.ax file. This could possibly solve the merit issue.

arestarh
8th January 2010, 14:09
albain
Hello!
I'm again about problems with translation:
I can't open in translation mode dialogs:
http://i044.radikal.ru/0912/8c/4f224226244at.jpg (http://radikal.ru/F/i044.radikal.ru/0912/8c/4f224226244a.png.html)
And even I manually edit file of localization(add necessary strings), *Add* and *Reset* buttons in both dialogs and also dialog *Use ffdshow only in* is not appeared in GUI:
http://i056.radikal.ru/1001/8f/c5f527d8a0e5t.jpg (http://radikal.ru/F/i056.radikal.ru/1001/8f/c5f527d8a0e5.png.html)
simply, I can't translate this elements...

And about section of Subtitles in configuration dialog.
I can't translate this dialog:
http://i061.radikal.ru/1001/02/415cb72eae26t.jpg (http://radikal.ru/F/i061.radikal.ru/1001/02/415cb72eae26.png.html)

tal.aloni
8th January 2010, 15:28
@albain,
OK, switched to EVR (Windows XP),
still no problem with Internal MPC-HC DXVA decoder,
ffdshow DXVA still give me the black screen and stuck on 00:00.

also, why are we limited to EVR? shouldn't we be supporting the same renderers MPC-HC supports?

p.s.
if you'll post a patch, I may be able to investigate further.

Thanks,
Tal

albain
8th January 2010, 15:36
@albain,
OK, switched to EVR (Windows XP),
still no problem with Internal MPC-HC DXVA decoder,
ffdshow DXVA still give me the black screen and stuck on 00:00.

also, why are we limited to EVR? shouldn't we be supporting the same renderers MPC-HC supports?

p.s.
if you'll post a patch, I may be able to investigate further.

Thanks,
Tal

Hi again,

I have committed the changes, so you may be able to figure out what's wrong

About the renderer, this is related to DXVA architecture that supports only EVR on Vista/7.
If FFDShow is not directly connected to an EVR renderer, then the DXVA libraries will refuse to load.

dann23
8th January 2010, 15:51
@albain,
OK, switched to EVR (Windows XP),
still no problem with Internal MPC-HC DXVA decoder,
ffdshow DXVA still give me the black screen and stuck on 00:00.

also, why are we limited to EVR? shouldn't we be supporting the same renderers MPC-HC supports?

p.s.
if you'll post a patch, I may be able to investigate further.

Thanks,
Tal

the same problem here since beta 3. black screen stuck at 00:00 this happens on windows xp.

XhmikosR
8th January 2010, 16:01
@albain: compilation is broken in rev 3185.
Error 1 fatal error C1083: Cannot open source file: '.\src\TffdshowDecVideoAllocatorDXVA.cpp': No such file or directory c1xx ffdshow
Error 2 fatal error C1083: Cannot open source file: '.\src\TffDecoderDXVA.cpp': No such file or directory c1xx ffdshow
Error 3 fatal error C1083: Cannot open include file: 'TffdshowDecVideoAllocatorDXVA.h': No such file or directory h:\progs\compiling\ffdshow\src\TffdshowDecVideoOutputPin.h 7 ffdshow
Error 4 fatal error C1083: Cannot open include file: 'TffdshowDecVideoAllocatorDXVA.h': No such file or directory h:\progs\compiling\ffdshow\src\TffdshowDecVideoOutputPin.h 7 ffdshow
Error 5 fatal error C1083: Cannot open include file: 'TffdshowDecVideoAllocatorDXVA.h': No such file or directory h:\progs\compiling\ffdshow\src\TffdshowDecVideoOutputPin.h 7 ffdshow
Error 6 fatal error C1083: Cannot open include file: 'TffdshowDecVideoAllocatorDXVA.h': No such file or directory h:\progs\Compiling\ffdshow\src\codecs\TDXVADecoder.cpp 29 ffdshow

albain
8th January 2010, 17:31
3 files were missing, this is fixed now

albain
8th January 2010, 19:42
Albain, I did more investigating on the merit issue. For my PC I just installed beta 4 over my old copy which resulted in both having a merit of 0xFF800001, Then I did a clean test in a VM and I got 0xFF800001 for Video and 0xFF800002 for DXVA.

I am not sure if this is already done, but maybe on upgrade scenarios during the installation, the old ffdshow.ax could be unregistered before installing and registering the new ffdshow.ax file. This could possibly solve the merit issue.

This is the solution that I found : DXVA normal merit is set upon (first) install to the same merit as FFDShow video normal merit + 1

This is not a satisfying solution because the merits cannot be changed under vista/7

ipanema
8th January 2010, 19:52
When using the ffdshow video encoder, the maximum setting of the bitrate slider is 10000 kbps. Is is possible to set this higher?

Anyone?

tal.aloni
8th January 2010, 20:23
@albain


FF_FOURCC_OP(AVC1,(dxvamask==0) ? (h264 & rawmask) : IDFF_MOVIE_LAVC,c_h264)


after this modication (from rev 3185), ffdshow h264 decoding cannot be disabled. when selecting disabled, IDFF_MOVIE_LAVC will be used because dxvamask != 0.

Edit: even when h264 dxva acceleration is disabled.

albain
8th January 2010, 20:57
@albain


FF_FOURCC_OP(AVC1,(dxvamask==0) ? (h264 & rawmask) : IDFF_MOVIE_LAVC,c_h264)


after this modication (from rev 3185), ffdshow h264 decoding cannot be disabled. when selecting disabled, IDFF_MOVIE_LAVC will be used because dxvamask != 0.

Edit: even when h264 dxva acceleration is disabled.

You're right, it shouldn't ??
FFDShow video : dxvamask = 0 => CODEC_ID_AVC1 = h264
FFDShow dxva : dxvamask= 0xFFFF => CODEC_ID_AVC1 = IDFF_MOVIE_LAVC

EDIT : this is fixed now

crlorentzen
8th January 2010, 23:27
@albain

1) ffdshow_rev3183_20100105_dbt_dxva_beta5 dbgview (http://pastebin.com/m63f05031)
2) 3154 dbgview (http://pastebin.com/m29c53646)

DTS pass-through with AC3 encode.

albain
8th January 2010, 23:35
@albain

1) ffdshow_rev3183_20100105_dbt_dxva_beta5 dbgview (http://pastebin.com/m63f05031)
2) 3154 dbgview (http://pastebin.com/m29c53646)

DTS pass-through with AC3 encode.

THank you, this is what I needed. I have found why it does not work, and this is related to the fact that your audio chip which refuses the connection of SPDIF format.

The solution will be to add another compatibility option in the output section to prevent testing SPDIF formats (but the others yes)

What is your audio chip by the way ?

hoborg
9th January 2010, 00:36
Hi. I just tested DXVA decoder from beta5 on ATI 4770 cat. 9.12 and Win7 x64 in MPC-HC and
- i bet there is wrong limit in FFDshow decoder, becouse lot of video samples i have didnt play in DXVA, but play OK by using MPC decoder in DXVA mode - MPC decoder can decode 5.1 up to 5 ref. frames in DXVA mode for me (Win7 and WinXP)
- all my samples i have are not working correctly, they are "blue" or have green frame flickering - no problem when using MPC decoder in DXVA mode

FFDshow: (wrong - blue picture)
http://www.volny.cz/hoborg/Mummy.ffdshow.jpg
MPC decoder (rev 1483 DXVA on)
http://www.volny.cz/hoborg/Mummy.mpc.jpg

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Muxing mode : Container profile=Unknown@5.1
Codec ID : V_MPEG4/ISO/AVC
Duration : 7s 480ms
Bit rate : 5 024 Kbps
Width : 1 920 pixels
Height : 816 pixels
Display aspect ratio : 2.35:1
Frame rate : 25.000 fps
Original frame rate : 23.976 fps
Resolution : 8 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.128
Stream size : 4.48 MiB (80%)
Language : English

crlorentzen
9th January 2010, 01:22
THank you, this is what I needed. I have found why it does not work, and this is related to the fact that your audio chip which refuses the connection of SPDIF format.

The solution will be to add another compatibility option in the output section to prevent testing SPDIF formats (but the others yes)

What is your audio chip by the way ?

Analog Devices, ADI1988B -onboard an ASUS M2N-SLI Deluxe
HDAUDIO\FUNC_01&VEN_11D4&DEV_198B&SUBSYS_104381F6

I wonder if it is an issue that a driver can correct. But I have tried many revisions of the driver and have never seen a change. currently I am running the 6110 release, not that that means anything to you.

Also, if it is my audio device refusing, why does it accept when AC3 encode is unchecked?

Looks to me like the audio hardware is locked by starting the stream before checking for support. EDIT: I'm probably wrong I think the StartStreaming just says we entered a function. Still not sure how to follow all of the code that I am reading in the svn.

encode 3183

00000373 2.95094848 [2404] TffdshowDecAudio::StartStreaming
...
00000381 3.31119037 [2404] TaudioParser::checkOutputFormat for codec DTS s/pdif with sample format 16
...
00000394 3.33679700 [2404] TaudioParser::checkOutputFormat refused for codec DTS s/pdif with sample format 16


no encode 3183

00000401 1.65489388 [3116] TffdshowDecAudio::StartStreaming
...
00000409 2.58283281 [3116] TaudioParser::checkOutputFormat for codec DTS s/pdif with sample format 16
...
00000425 2.59875965 [3116] TaudioParser::checkOutputFormat accepted for codec DTS s/pdif with sample format 16


3183, noencode (http://pastebin.com/m37a56a65)
3183, encode (http://pastebin.com/m63f05031)

Is it possible that AC3 encode is locking the device first and then you cannot check for DTS acceptance because the device is already locked?

tal.aloni
9th January 2010, 01:47
@albain
getting better, however, when selecting ffmpeg-mt for AVC it will not load.

Thanks!

mark0077
9th January 2010, 02:58
Hi all,

This might be a weird question, but I am hoping ffdshow might somehow have this ability using one of its filters. I have been using my Samsung Series 9 in 60hz PC Mode, for over a year now, as non 60hz pc modes display this odd, what looks like interlaced image from time to time. One moment a blu-ray at 24hz for example might look perfect, all of a sudden it will display horizontal combing effect. Only today did I realise, that if I play content, that consistently changes, at over half the rate of the TV, does the TV stop this behaviour.

I think the TV may be disabling this interlacing? / apparantly attempt at de-interlacing?, effect, if I am watching a scene thats consistently got enough motion, to show more than 12fps..... Same for 60hz, if I use reclock to force a movie to display at 30fps or more, the TV stops this weird effect, or apparant attempt to de-interlace the image.

My question is, is this why that alternating white / black square often seen on the corner of TVs, a way of telling the TV the actual frame rate of the content. My question is, has anyone heard of a way to do this on the PC, ie have something small perhaps, flicker at a particular frame rate. At the moment, watching Star Trek blu-ray using 90% of the screen at 24hz, with fast motion video also playing at 24hz in the other 10%, just to keep the TV happy that content is being played on screen that doesn't require de-interlacing.

I hope I am clear enough here, basically asking if such functionality has ever been asked for before. Cheers.

Nitrius
9th January 2010, 04:18
Which version is recommended? xxl, clsid or albain? Should i give x64 a try? Since am using MPC HC x64 atm?

crlorentzen
9th January 2010, 04:26
@Nitrius,

xxl, clsid and albain builds are all great. I generally stick with clsid but, there isn't really a reason.

For MPC-HC x64 you will need to use an x64 ffdshow build. x64 applications use x64 filters only. The x64 ffdshow builds will not work for any x86 media players, and vice versa. So the easiest thing to do is install an x64 and an x86 build if you are going to use any x86 media players.

dann23
9th January 2010, 07:48
@albain since beta 3 I can't play any movies with dxva. Is it possible that ffdshow is trying to use dxva 2 on windows xp?

albain
9th January 2010, 10:51
@tal aloni & @dann23

You may have residual registry settings from earlier builds

Go to HKEY_CURRENT_USER\Software\GNU\ffdshow\default

and delete dec_DXVA_H264 and dec_DXVA_VC1 values. THey shouldn't be in ffdshow but in ffdshow_dxva presets only

dann23
9th January 2010, 11:49
@tal aloni & @dann23

You may have residual registry settings from earlier builds

Go to HKEY_CURRENT_USER\Software\GNU\ffdshow\default

and delete dec_DXVA_H264 and dec_DXVA_VC1 values. THey shouldn't be in ffdshow but in ffdshow_dxva presets only

I deleted HKEY_CURRENT_USER\Software\GNU just to be safe, but the problem remains. ffdshow gets loaded. I see the icon in systray and says that it's using dxva 1, but the movie doesn't start playing.

albain
9th January 2010, 13:02
I deleted HKEY_CURRENT_USER\Software\GNU just to be safe, but the problem remains. ffdshow gets loaded. I see the icon in systray and says that it's using dxva 1, but the movie doesn't start playing.

Sorry, but the last beta build is buggy on H264 decoder selection for FFDShow video
Revision 3187 fixed it

dann23
9th January 2010, 13:20
Sorry, but the last beta build is buggy on H264 decoder selection for FFDShow video
Revision 3187 fixed it

where to download build 3187? thank you.

tal.aloni
9th January 2010, 13:25
@tal aloni & @dann23

You may have residual registry settings from earlier builds

Go to HKEY_CURRENT_USER\Software\GNU\ffdshow\default

and delete dec_DXVA_H264 and dec_DXVA_VC1 values.

OK, I did this, I also did a complete uninstall and reinstall of rev. 3188,
I still cannot use ffmpeg-MT, can you?
also, still 00:00 when trying to use DXVA.

Thanks,
Tal

albain
9th January 2010, 13:48
@albain
getting better, however, when selecting ffmpeg-mt for AVC it will not load.

Thanks!

You're right, I thought at first that this was because I forgot to recompile it but the ffmpeg-mt library fails to load : this is because there are extra methods for DXVA that are included in libavcodec but not in ffmpeg-mt

I have fixed it in revision 3189

Concerning DXVA, this is weird. Have you tried different samples ?

Otherwise I have uploaded a new build to sourceforge with the last fix.
https://sourceforge.net/projects/ffdshow-tryout/files/SVN%20builds%20by%20albain/generic%20builds/ffdshow_rev3189_20100109_dbt.exe/download

Sebastiii
9th January 2010, 14:09
Hi Albain :)

I've test then i have some issue.
How i can help you on this (must i put allowdprintf and log with debugview ?)
Thx for your work :)
Seb.

albain
9th January 2010, 14:32
@albain

1) ffdshow_rev3183_20100105_dbt_dxva_beta5 dbgview (http://pastebin.com/m63f05031)
2) 3154 dbgview (http://pastebin.com/m29c53646)

DTS pass-through with AC3 encode.

Can you uncheck "Connect as PCM first" in the output section of FFDShow audio.
I think that should solve your problem.

In that case SPDIF will be initialized first and FFDShow won't have to do a dynamic format change (PCM to SPDIF) which fails as your audio driver will refuse it.

@Seb : thank you, maybe you can tell me if DXVA decoding is working for you ?

VipZ
9th January 2010, 15:09
@ albain

In every case where DXVA loads I get results like this, tested with rev 3190
http://img442.imageshack.us/img442/8339/sampleq.jpg

I am running Win7 x64, ATI 4870 /w 9.12 Hotfix drivers.

clsid
9th January 2010, 15:25
Same here with:
Vista x64, ATI 3470, catalyst 9.10

Casimir666 might know what is wrong. I vaguely remember a similar issue in MPC a long time ago.

Jeremy Duncan
9th January 2010, 15:28
I'm building ffdshow using mingw but it's been a while since I worked with mingw msys and don't know how to go to the directory where the makefile is.
Can you please tell me how to go to where the makefile is if I use msys?

XhmikosR
9th January 2010, 16:08
cd "/mydiskletter/myfolder"

clsid
9th January 2010, 16:09
If you use my custom MinGW installer then you don't need to use MSYS. You can just run make from the windows command-line.

In MSYS you can use this command for changing dirs:
cd /c/path/to/ffdshow/source

albain
9th January 2010, 17:31
I'm building ffdshow using mingw but it's been a while since I worked with mingw msys and don't know how to go to the directory where the makefile is.
Can you please tell me how to go to where the makefile is if I use msys?

I don't recommend using mingw to build ffdshow, besides the gain in performance will be imperciptible. You will get better performances with ICL.

However, mingw is required to build ffmpeg and other stuff around, the makefile is located in src directory

EDIT : okay, I didn't understand

deets
9th January 2010, 18:04
the holy grail for me would be ffdshow that can handle DXVA on the BBC HD and ITV HD live streams. sadly the beta just plays a couple of seconds then dies on the recorded files i have.

I would kill to just have one thing for my live satellite and recordings :)

_xxl
9th January 2010, 18:27
From trunk/src dir type in Msys make and compile with MinGW GCC.

dann23
9th January 2010, 21:16
nothing is working with dxva since beta 3. I tried build 3190 and the same problem. I attached the debug log. Maybe you'll find something usefull in there.

http://www.mediafire.com/download.php?nzyznmmj4mj

crlorentzen
9th January 2010, 21:28
Can you uncheck "Connect as PCM first" in the output section of FFDShow audio.
I think that should solve your problem.

In that case SPDIF will be initialized first and FFDShow won't have to do a dynamic format change (PCM to SPDIF) which fails as your audio driver will refuse it.

@Seb : thank you, maybe you can tell me if DXVA decoding is working for you ?

Without connect as PCM first DTS pass-through does not work. My receiver does not seem to want to change to DTS without first hitting PCM. If I disable all pass-through, start a DTS track then select the DTS pass-through it works. The receiver shows that at the start we have PCM (as it uses my surround mode for that), then immediately shifts to DTS when I select that pass-through option.

some testing with small data collection
http://ffdshow-tryout.sourceforge.net/phpBB2/viewtopic.php?p=4791#4791

I am tired and will take a break on this, go back to 3154 for now.

sorry albain. Thanks for being so willing to help. Hopefully I will come back to this in a week or two.

Jeremy Duncan
9th January 2010, 23:23
I used the ffdshow custom mingw from the ffdshow wiki and built these dll's using msys:

libmplayer.dll
ff_liba52.dll
ff_libdts.dll
ff_libfaad2.dll
ff_libmad.dll
ff_realaac.dll
ff_samplerate.dll
ff_tremor.dll
xvidcore.dll
libavcodec.dll
ffmpegmt.dll
ff_theora.dll
ff_x264.dll

I cannot build these dll's below though. Here is a sample of the code I use in msys:
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/imgFilters/KernelDeint"
make

here is the error codes:


jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/ffS
pkCfg
$ make
gcc -c -I. -w -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -
DNDEBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno
-tree-vectorize -fomit-frame-pointer -MMD -o ffSpkCfg.o ffSpkCfg.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [ffSpkCfg.o] Error 1




jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/ffS
pkCfg
$ cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/imgFilters/Kerne
lDeint"

jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/img
Filters/KernelDeint
$ make
gcc -c -I. -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DND
EBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno-tr
ee-vectorize -msse -mfpmath=sse -fomit-frame-pointer -MMD -o ff_kernelDeint.o ff
_kernelDeint.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [ff_kernelDeint.o] Error 1




jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/img
Filters/KernelDeint
$ cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/unrar"

jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/unrar
$ make
gcc -c -I. -I../.. -DRARDLL -DNOCRYPT -DSILENT -DNOVOLUME -DSFX_MODULE -DSHELL_E
XT -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DNDEBUG -UD
EBUG -UUNICODE -U_UNICODE -fno-rtti -fexceptions -O3 -march=i686 -mmmx -fno-comm
on -fno-tree-vectorize -fomit-frame-pointer -MMD -o archive.o archive.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [archive.o] Error 1




jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/unrar
$ cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/codecs/libmpeg2"

jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/cod
ecs/libmpeg2
$ make
gcc -c -I. -Iinclude -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads
-pipe -DNDEBUG -UDEBUG -x c++ -O3 -march=i686 -mmmx -fno-common -fno-tree-vector
ize -msse -mfpmath=sse -fomit-frame-pointer -MMD -o libmpeg2/alloc.o libmpeg2/al
loc.c
gcc.exe: CreateProcess: No such file or directory
make: *** [libmpeg2/alloc.o] Error 1




jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/cod
ecs/libmpeg2
$ cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/rebase"

jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/rebase
$ make
gcc -c -I. -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DND
EBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno-tr
ee-vectorize -fomit-frame-pointer -MMD -o rebase.o rebase.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [rebase.o] Error 1




jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/rebase
$ cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/imgFilters/TomsM
oComp"

jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/img
Filters/TomsMoComp
$ make
gcc -c -I. -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DND
EBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno-tr
ee-vectorize -msse -mfpmath=sse -fomit-frame-pointer -MMD -o TomsMoComp.o TomsMo
Comp.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [TomsMoComp.o] Error 1




jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/img
Filters/TomsMoComp
$ cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/verinc"

jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/verinc
$ make
gcc -c -I. -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DND
EBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno-tr
ee-vectorize -fomit-frame-pointer -MMD -o verinc.o verinc.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [verinc.o] Error 1



jeremy@jeremy-A0DCBD577E3 /c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/verinc
$

edit,

here is the full list of dlls I tried to make but couldn't. this code was run in msys
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/ffSpkCfg"
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/imgFilters/KernelDeint"
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/unrar"
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/codecs/libmpeg2"
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/rebase"
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/src/imgFilters/TomsMoComp"
cd "/c/Documents and Settings/jeremy/Desktop/ffdshow-tryout/verinc"

Once I go to each directory I then type Make and press Enter. This is how I made those other dll's in msys, but these ones I added in this edit won't work.

tal.aloni
9th January 2010, 23:24
DXVA 1.0 will start working starting from rev. 3194

SamuriHL
9th January 2010, 23:30
Don't have spaces in the path for your build environment.

Jeremy Duncan
9th January 2010, 23:48
Don't have spaces in the path for your build environment.

I added the code I use in my prevous post. May I ask you to look at it and post the correct code I should use? :)

SamuriHL
9th January 2010, 23:51
I added the code I use in my prevous post. May I ask you to look at it and post the correct code I should use? :)

I wouldn't have the first clue on those errors. I just remember when I was setting up ffdshow to compile there was a warning not to have spaces in the build path. I ended up moving the project to my main C drive. I haven't built any of the ffmpeg stuff as I don't have mingw set up on my machine right now. But, I would start by moving it to somewhere where there's no spaces in the path for starters.

whurlston
9th January 2010, 23:55
gcc.exe: CreateProcess: No such file or directory

Add the GCC bin folder to your PATH if you haven't already. And move the project the "C:\ffdshow-tryout" so there is no space in the project path as SHL mentioned.

Jeremy Duncan
10th January 2010, 00:10
Add the GCC bin folder to your PATH if you haven't already.

I put the project folder in the c:\ as directed and in system, advanced, environment variables, system variables, this is my path:
C:\Program Files\Intel\Compiler\11.1\054\tbb\ia32\vc9\bin;C:\Program Files\Intel\Compiler\11.1\054\ipp\ia32\bin;%ICPP_COMPILER11%lib\ia32;C:\Program Files\Intel\Compiler\11.1\054\mkl\ia32\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\DMIX;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\TortoiseSVN\bin;C:\MinGW32\bin;C:\MinGW32\MSYS\bin

here is a picture of my path:
http://thumbnails27.imagebam.com/6309/49964063082632.gif (http://www.imagebam.com/image/49964063082632)

I get this error:


jeremy@jeremy-A0DCBD577E3 ~
$ cd "/c/ffdshow-tryout/src/imgFilters/KernelDeint"

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/src/imgFilters/KernelDeint
$ make
gcc -c -I. -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DND
EBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno-tr
ee-vectorize -msse -mfpmath=sse -fomit-frame-pointer -MMD -o ff_kernelDeint.o ff
_kernelDeint.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [ff_kernelDeint.o] Error 1

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/src/imgFilters/KernelDeint
$

VipZ
10th January 2010, 00:10
DXVA 1.0 will start working starting from rev. 3194

Thanks :) DXVA working for me now, I get corruption on seeking sometimes though.

SamuriHL
10th January 2010, 00:13
It doesn't appear to be finding gcc.exe. I'm not sure why this would be the case.

whurlston
10th January 2010, 00:39
Are you sure your project path is correct and doesn't have the trunk folder?

/c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint

If it's correct, I'm not sure what the issue is.

deets
10th January 2010, 01:03
would it help if i uploaded a 50mb unprocessed TS clip of BBC HD in the hope it could be made to work?

Jeremy Duncan
10th January 2010, 01:44
Are you sure your project path is correct and doesn't have the trunk folder?

/c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint

If it's correct, I'm not sure what the issue is.

It doesn't have the trunk folder. Here is what I did to get the ffdshow package downloaded to my hard drive.
step 1. i installed tortoise svn, as the ffdshow wiki linked to.
step 2. I opened windows explorer, file, svn checkout.
step 3. I used this url: https://ffdshow-tryout.svn.sourceforge.net/svnroot/ffdshow-tryout/trunk
Fully recursive.
Revison, showlog, I checked the newest build.
I press ok and it downloads the files to my hard drive.

Edit,

I deleted the previous ffdshow files I downloaded and redownloaded it. This time I downloaded both the trunk and branches, and the directory used trunk this time and it still had a error.
I tried both cmd and msys, and beta 1 kerneldeint, and the newest trunk kerneldeint.
here is the error I get:



jeremy@jeremy-A0DCBD577E3 ~
$ cd cd "/c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint"
sh: cd: cd: No such file or directory

jeremy@jeremy-A0DCBD577E3 ~
$ cd "/c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint"

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint
$ make
gcc -c -I. -DWIN32 -D_WIN32 -D__MINGW32__ -mno-cygwin -mdll -mthreads -pipe -DND
EBUG -UDEBUG -fno-rtti -fno-exceptions -O3 -march=i686 -mmmx -fno-common -fno-tr
ee-vectorize -msse -mfpmath=sse -fomit-frame-pointer -MMD -o ff_kernelDeint.o ff
_kernelDeint.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [ff_kernelDeint.o] Error 1

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint
$ cd "/c/ffdshow-tryout/branches/beta1/src/imgFilters/KernelDeint"

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/branches/beta1/src/imgFilters/KernelDeint
$ make
gcc -c -I. -I../.. -mno-cygwin -mdll -mthreads -pipe -mmmx -msse -mfpmath=sse -D
NDEBUG -UDEBUG -DWIN32 -D_WIN32 -fno-rtti -fno-exceptions -O2 -march=pentium-mmx
-mtune=i686 -fomit-frame-pointer -finline-functions -finline -frename-registers
-fweb -funit-at-a-time -MMD -o ff_kernelDeint.o ff_kernelDeint.cpp
gcc.exe: CreateProcess: No such file or directory
make: *** [ff_kernelDeint.o] Error 1

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/branches/beta1/src/imgFilters/KernelDeint
$

roytam1
10th January 2010, 02:57
DXVA 1.0 will start working starting from rev. 3194

ffdshow DXVA in XP looks strange:
http://xs.to/thumb-45D1_4B493387.jpg (http://xs.to/share-45D1_4B493387.html)
comparing with MPC-HC's:
http://xs.to/thumb-BC1B_4B493387.jpg (http://xs.to/share-BC1B_4B493387.html)

and when I use ffdshow DXVA in DVBViewer for watching HDTV, ffdshow DXVA crashes.

Jeremy Duncan
10th January 2010, 07:58
software used
- first installed visual studio professional 2008, default loacation, full build
- second installed sdk for windows 7 and .net 3.5, in the C:\Program Files\Microsoft Visual Studio 9.0\VC folder I made a new folder and called it "PlatformSDK" and installed the sdk in this folder.
- third I installed the directx sdk, august 2009
- fourth the tortoise svn, TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.zip
- fifth i installed the custom made mingw designed for ffdshow.

I installed this wrong the first time, the correct way to install it is to check all the boxes during installation.

It will show a lost of boxes for these programs:
mingw runtime 3.16(2009-08-15)
msys 1.0.11(2009-07-18)
gcc 4.4.1(tdm-2)
binutils 2.19.1(2009-02-03)
win32api 3.13(2008-12-06)
pthreadsapi(2009-07-30)
yasm 0.8.0(2009-04-10)
make 3.81(2009-09-14)
unxutils(2007-03-01)
sdl 1.2.13
just check all the boxes and install in the default location.

- sixth I downloaded yasm; yasm-0.8.0-win32.exe, I renamed this yasm.exe and put this in the C:\Program Files\Microsoft Visual Studio 9.0\VC\bin folder

- seventh I downloaded and installed the innosetup QuickStart Pack: ispack-5.3.7-unicode.exe
I let it install all the add ons available.

- Eighth Then I downloaded the files from the internet and put them on my hard drive. here is how I did that.
I opened windows explorer, file tab, svn checkout.
I used this repository url: https://ffdshow-tryout.svn.sourceforge.net/svnroot/ffdshow-tryout/trunk
I chose where to save the file (c:\ drive) and clicked ok. it's fully recursive and head version.

Now all the sw and files are on the computer and you can start the project
step 1, open visual studio 2008, c++ environment, setup visual studio "tools, options, projects and solutions, vc++ directories"


show directory for executable files (list is from top to bottom, use the arrows to move a line up or down.)
$(WindowsSdkDir)\bin
$(VCInstallDir)bin
C:\Program Files\Intel\Compiler\11.1\054\bin\ia32
$(VSInstallDir)Common7\Tools\bin
$(VSInstallDir)Common7\tools
$(VSInstallDir)Common7\ide
$(ProgramFiles)\HTML Help Workshop
$(FrameworkSDKDir)bin
$(FrameworkDir)$(FrameworkVersion)
$(VSInstallDir)
$(SystemRoot)\SysWow64
$(FxCopDir)
$(PATH)
C:\Documents and Settings\789\Desktop\ffdshow-tryout\bin

show directory for include files (list is from top to bottom, use the arrows to move a line up or down.)
$(ProgramFiles)\Microsoft DirectX SDK (August 2009)\Include
$(WindowsSdkDir)\include
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(FrameworkSDKDir)include

show directory for reference files (list is from top to bottom, use the arrows to move a line up or down.)
$(FrameworkDir)$(FrameworkVersion)
$(VCInstallDir)atlmfc\lib
$(VCInstallDir)lib

show directory for library files (list is from top to bottom, use the arrows to move a line up or down.)
$(ProgramFiles)\Microsoft DirectX SDK (August 2009)\Lib\x86
$(WindowsSdkDir)\lib
$(VCInstallDir)lib
$(VCInstallDir)atlmfc\lib
$(VCInstallDir)atlmfc\lib\i386
$(FrameworkSDKDir)lib
$(VSInstallDir)
$(VSInstallDir)lib
C:\Program Files\Intel\Compiler\11.1\054\lib\ia32

show directory for source files (list is from top to bottom, use the arrows to move a line up or down.)
$(VCInstallDir)atlmfc\src\mfc
$(VCInstallDir)atlmfc\src\mfcm
$(VCInstallDir)atlmfc\src\atl
$(VCInstallDir)crt\src

show directory for exclude directories (list is from top to bottom, use the arrows to move a line up or down.)
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSdkDir)\include
$(FrameworkSDKDir)include
$(FrameworkDir)$(FrameworkVersion)
$(VCInstallDir)atlmfc\lib
$(VCInstallDir)lib


step 2. create files

step a. from ffdshow package using mingw "msys".
click Start, all programs, mingw32, msys
A cmd prompt black window will appear with a dollar symbol "$". Copy and paste each directory from the list I will show then press enter, then type "make" and press enter and the file will be created in the C:\ffdshow-tryout\trunk\bin folder
here is a example of what the black msys window will look like:


jeremy@jeremy-A0DCBD577E3 ~
$

Then I paste this line of code showing a directory for a makefile next to the dollar sign like so:


jeremy@jeremy-A0DCBD577E3 ~
$ cd "/c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint"

Then I press enter and the result is shown below:

jeremy@jeremy-A0DCBD577E3 /c/ffdshow-tryout/trunk/src/imgFilters/KernelDeint
$

Then by the dollar sign I type Make, then press enter and it will create the file in the bin directory.
I do this for all the files in the list below:

step 1. built with mingw msys cmd promt

ff_kernelDeint.dll: cd "/c/ffdshow-tryout/src/imgFilters/KernelDeint"
TomsMoComp_ff.dll: cd "/c/ffdshow-tryout/src/imgFilters/TomsMoComp"
xvidcore: cd "/c/ffdshow-tryout/src/codecs/xvidcore"
libmplayer.dll: cd "/c/ffdshow-tryout/src/mplayer"
libavcodec.dll: cd "/c/ffdshow-tryout/src/ffmpeg"
ffmpegmt.dll, ff_theora.dll, ff_x264.dll: cd "/c/ffdshow-tryout/src"
libmpeg2ff: cd "/c/ffdshow-tryout/src/codecs/libmpeg2"


step b. from visual studio create these files in the order shown starting from the top:

ff_acm
ff_liba52
ff_libdts
ff_libfaad2
ff_libmad
ff_realaac
ff_samplerate
ff_tremor
ff_unrar
ff_vfw
ff_wmv9
ffavisynth
ffvdub
flt_ffdshow
rebase
verinc
ffdshow
ffdshowall
makeavis

How do you do this you may be asking?
Open visual studio professional
from the file tab click open project/solution
go to this folder: C:\ffdshow-tryout\trunk, and choose ffdshow_2008.sln
right click the top file from the list and choose configuration manager, set the Active solution configuration to Release unicode, set the active solution platform to win32, click close.
highlight a file from the list shown, for instance ff_acm, then from the build tab choose build only ff_acm. Wait till it's built then look for the newly created file in the C:\ffdshow-tryout\trunk\bin folder
You do this for every file I listed above.
if you do everything correctly then when you build ffdhow you won't get a error, but if you did something wrong like something was not built by visual studio or msys, then you will get a Yasm error when you try to build ffdshow.

Now all the files are built and you can create a ffdshow.exe in step 3.

Step 3.

Go to this folder: C:\ffdshow-tryout\trunk\bin\distrib\InnoSetup, double click this file to open it: ffdshow_installer.iss
Add the info in the first five lines: day made and version number
press f9, then from the build tab click compile and it will make ffdshow.exe and put it in that same folder.

All done ! :)

here is the ffdshow I made using the steps above. Why don't you install it and test to see if it works and tehen post to tell me how you did? :)

link to the file I uploaded for you to test out. (http://www.mediafire.com/?m3ez2yztext)

link to release version of a ffdshow I made (http://www.mediafire.com/?ndwjzjdzoyu) This version uses set's patch. It's best to open ffdshow video configuration, decoder options, uncheck detect soft telecine, uncheck drop frame on delay

_xxl
10th January 2010, 08:39
gcc.exe: CreateProcess: No such file or directory
make: *** [ff_kernelDeint.o] Error 1
...

This error I get when using Clsid's custom MinGW GCC installer.
ff_kernelDeint.dll,libmpeg2_ff.dll and TomsMoComp_ff.dll shouldn't be compiled by MinGW GCC because they are slower than MSVC 2008.

Jeremy Duncan
10th January 2010, 09:22
This error I get when using Clsid's custom MinGW GCC installer.
ff_kernelDeint.dll,libmpeg2_ff.dll and TomsMoComp_ff.dll shouldn't be compiled by MinGW GCC because they are slower than MSVC 2008.

"- fifth i installed the custom made mingw designed for ffdshow.

I installed this wrong the first time, the correct way to install it is to check all the boxes during installation.

It will show a lost of boxes for these programs:
mingw runtime 3.16(2009-08-15)
msys 1.0.11(2009-07-18)
gcc 4.4.1(tdm-2)
binutils 2.19.1(2009-02-03)
win32api 3.13(2008-12-06)
pthreadsapi(2009-07-30)
yasm 0.8.0(2009-04-10)
make 3.81(2009-09-14)
unxutils(2007-03-01)
sdl 1.2.13
just check all the boxes and install in the default location.
"

uninstall the custom mingw, then reinstall it and in the section it asks what to check to install check everything. gcc has a box unchecked and that needs to be checked, and sdl should be checked too.

CruNcher
10th January 2010, 09:48
DXVA doesn't work here i get 33 fps i should get 60 fps like with MPC-HC though that isn't happening XP 32bit VMR7 Nvidia, i activated DXVA in the extra panel tried both ffdshow-mt and libavcodec nothing no acceleration.

Allgemein
Vollständiger Name : I:\wipeoutHD_DE_1080p\WipEout_HD_German_1080p.mp4
Format : MPEG-4
Format-Profil : Base Media / Version 2
Codec-ID : mp42
Dateigröße : 171 MiB
Dauer : 1min 11s
Gesamte Bitrate : 20,0 Mbps
Kodierungs-Datum : UTC 2008-08-01 18:14:03
Tagging-Datum : UTC 2008-08-01 18:14:09

Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format-Profil : Main@L4.2
Format-Einstellungen für CABAC : Nein
Format-Einstellungen für ReFrame : 2 frames
Codec-ID : avc1
Codec-ID/Info : Advanced Video Coding
Dauer : 1min 11s
Bitraten-Modus : variabel
Bitrate : 19,9 Mbps
Breite : 1 920 Pixel
Höhe : 1 080 Pixel
Bildseitenverhältnis : 16:9
Modus der Bildwiederholungsrate : konstant
Bildwiederholungsrate : 59,940 FPS
Auflösung : 8 bits
Colorimetrie : 4:2:0
Scantyp : progressiv
Bits/(Pixel*Frame) : 0.160
Stream-Größe : 170 MiB (99%)
Sprache : Englisch
Kodierungs-Datum : UTC 2008-08-01 18:13:45
Tagging-Datum : UTC 2008-08-01 18:14:09
colour_primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
transfer_characteristics : BT.709-5, BT.1361
matrix_coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

Audio
ID : 1
Format : AAC
Format/Info : Advanced Audio Codec
Format-Version : Version 4
Format-Profil : LC
Format-Einstellungen für SBR : Nein
Codec-ID : 40
Dauer : 1min 11s
Bitraten-Modus : konstant
Bitrate : 144 Kbps
nominale Bitrate : 160 Kbps
Kanäle : 2 Kanäle
Kanal-Positionen : L R
Samplingrate : 48,0 KHz
Stream-Größe : 1,25 MiB (1%)
Sprache : Englisch
Kodierungs-Datum : UTC 2008-08-01 18:13:44
Tagging-Datum : UTC 2008-08-01 18:14:09

teohhanhui
10th January 2010, 10:48
Build 3194

DXVA disabled:
http://img140.imageshack.us/img140/4858/dxvadisabled.th.png (http://img140.imageshack.us/i/dxvadisabled.png/)

DXVA enabled, not used:
http://img140.imageshack.us/img140/7186/dxvaenabled.th.png (http://img140.imageshack.us/i/dxvaenabled.png/)

Has this been fixed in build 3195?
Fixed : DXVA decoder was still loaded when compatibility mode is set to default and a high profile (incompatible) video is loaded

tal.aloni
10th January 2010, 11:30
Has this been fixed in build 3195?

should be fixed. let us know.

Thanks,
Tal

XhmikosR
10th January 2010, 14:08
Build 3195 (http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1).

@Jeremy Duncan: Don't take what I'm going to say the wrong way, but please don't pollute this thread with these nonsense posts of yours. No one cares about how you compiled ffdshow. That's why the wiki exists.

Jeremy Duncan
10th January 2010, 14:12
Build 3195 (http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1).

@Jeremy Duncan: Don't take what I'm going to say the wrong way, but please don't pollute this thread with these nonsense posts of yours. No one cares about how you compiled ffdshow. That's why the wiki exists.

I had questions about building the ffdshow and I asked them here. There is nothing wrong with having done that.

I then found out how and posted it in one single post, not multiple posts as you stated, only one post.

Then xxl_ had a question which I answered.

"No one cares ".
And do you think you speak for everybody as you suggest? You do not speak for me.

clsid
10th January 2010, 15:30
Kerneldeint requires g++ (GCC c++ compiler).

deets
10th January 2010, 16:35
do you guys have any plans to support live streams? seems to work fine on most of my old encodes to mp4/mkv

Casshern
10th January 2010, 17:13
Your experieces compiling are much appreciated. Could you please help to update the wiki?

I had questions about building the ffdshow and I asked them here. There is nothing wrong with having done that.

I then found out how and posted it in one single post, not multiple posts as you stated, only one post.

Then xxl_ had a question which I answered.

"No one cares ".
And do you think you speak for everybody as you suggest? You do not speak for me.

XhmikosR
10th January 2010, 17:34
@Jeremy Duncan: It's pretty clear that you don't have any clue about what you are doing. I'm not saying that I'm an expert, which clearly I'm not, but the wiki instructions are pretty straightforward (although it needs updating since some compilers have changed like xvidcore is built with MSVC and not GCC). So please don't do what Casshern suggests.

Now, that's only my opinion and so you can do whatever you think at the end.

albain
10th January 2010, 18:29
Okay, Jeremy's posts are veryyyyy long, but there are different ways to request things.

FFDShow is complicated to compile, and the wiki needs to be updated so please do so.

We are very few on this project and need motivated newcomers so please let's remain.... uh, welcoming

SamuriHL
10th January 2010, 18:41
There's a wiki page? Son of a!!! :) I set it up blind when I first compiled it for the bitstreaming debugging. Ah well. :)

tal.aloni
10th January 2010, 20:17
There's a wiki page? Son of a!!! :) I set it up blind when I first compiled it for the bitstreaming debugging. Ah well. :)

lol :)

Blight
10th January 2010, 20:28
Just a heads up, I'm not sure if it's a regression issue or just a screw-up with the build numbering, but ffmpeg-mt H.264 decoding is broken in build 3190 (non DXVA decoder), works in build 3189.

hoborg
10th January 2010, 20:40
Hi. I just tested DXVA decoder from beta5 on ATI 4770 cat. 9.12 and Win7 x64 in MPC-HC and
- i bet there is wrong limit in FFDshow decoder, becouse lot of video samples i have didnt play in DXVA, but play OK by using MPC decoder in DXVA mode - MPC decoder can decode 5.1 up to 5 ref. frames in DXVA mode for me (Win7 and WinXP)
- all my samples i have are not working correctly, they are "blue" or have green frame flickering - no problem when using MPC decoder in DXVA mode


Just tested build 3194 and both problems are fixed now, great work!

EDIT:
So soon - videos are still blue if DXVA is off...

markrb
10th January 2010, 21:21
I know some may consider this slightly off topic and I do apologize if it really is.
I am running 3195 build using both Haali and MPC (for m2ts) as splitters.
I am running through MediaPortal as my main player.
I have a Xonar slim card as my audio card. I am using the TMT audio renderer as is suggested.

The following has been a problem since the first HD pass through builds.
I can get DTS-MA and Dolby TRUHD to work with my receiver no problem.
The problem is that once either of those formats plays I cannot get any other audio format to play. It is like my pc codec is locked and will not reset until I close out of the application and restart it. I do not know if this is an issue in ffdshow or Media Portal and honestly I don't know how to find out.

If I leave use PCM first unchecked my HD video will not even start. Checking using Xonar formats has no effect and AC3 encode mode is unchecked.

Thanks for all the great work,
Mark

albain
10th January 2010, 21:27
Just tested build 3194 and both problems are fixed now, great work!

EDIT:
So soon - videos are still blue if DXVA is off...

This should be fixed in rev 3195.

But there may still be issues (green picture), I don't know

Sebastiii
10th January 2010, 22:19
@Seb : thank you, maybe you can tell me if DXVA decoding is working for you ?

Hi,

It works but not complete, i have sometime blue color.
I must set option to "ignore .... " with normal it don't work.
But i must made more test and i'll try 3195 to see what happen :)

But it's great DXVA :)

Seb.

Exiton
10th January 2010, 22:55
Does anyone know how to get FFDSHOW to pass through an embeded AC3 file in a TrueHD track?

tal.aloni
10th January 2010, 23:20
Does anyone know how to get FFDSHOW to pass through an embeded AC3 file in a TrueHD track?

under codecs, set TrueHD to disabled, and enable AC3 pass through. I think this should work.

Exiton
11th January 2010, 01:33
under codecs, set TrueHD to disabled, and enable AC3 pass through. I think this should work.

Hmmm, still no go. I disabled TrueHD under "Codecs" then had pass-through checked under "Output" all along. I'll try it on another computer and see if that changes things.

andybkma
11th January 2010, 05:29
Hi, using the new ffdshow DXVA Video Decoder with the newest version of Zoom Player Pro, I get no video picture, just a grey screen. Normally use madVR as my renderer but all I get is grey when using the DXVA Video Decoder. My H264 video file is playing and the video/audio codecs are working as they should be I just don't get a picture. I tried switching to Haali's renderer, VMR9, VMR7 and just the overlay mixer. Still no picture. When I turn off the DXVA H264 codec and fall back to ffmpeg-mt then the picture is fine.

I've tried ffdshow Revisions 3189, 3190 by clisd & 3195 by XhmikosR. No change. I even checked all colorspaces in ffdshow output. No change. XP, SP3 & using nNvidia driver 182.08 with my 8600m GT if this makes a difference.

Any thoughts? Cheers...

Jeremy Duncan
11th January 2010, 06:01
Your experieces compiling are much appreciated. Could you please help to update the wiki?

Yes, I have just finished updating it: link (http://ffdshow-tryout.sourceforge.net/wiki/devel:building#using_innosetup_to_create_the_ffdshow.exe_fileby_jeremy_duncan)

betaking
11th January 2010, 06:53
Just a heads up, I'm not sure if it's a regression issue or just a screw-up with the build numbering, but ffmpeg-mt H.264 decoding is broken in build 3190 (non DXVA decoder), works in build 3189.

test last ffdshow 3195 use ffmpeg-mt H.264 decoding by zoomplayer 7.00 Home max! play is fine!

andybkma
11th January 2010, 09:22
test last ffdshow 3195 use ffmpeg-mt H.264 decoding by zoomplayer 7.00 Home max! play is fine!


Build 3190 ffmpeg-mt works for me, too. I don't get a picture though using the new DXVA codec (see above posting). BTW, betaking, what skin is that for Zoom Player you are using and where can I find? Is mighty nice. Cheers

teohhanhui
11th January 2010, 09:55
should be fixed. let us know.

Thanks,
Tal

Yes, it has been fixed. Thanks.

Gleb Egorych
11th January 2010, 10:03
BTW, betaking, what skin is that for Zoom Player you are using and where can I find? Is mighty nice. Cheers
*OFFTOPIC* I'm not betaking, but will answer :) It's Fusion theme, it is bundled with ZP7, check Open Interface -> Skin Selector.

liquidskin76
11th January 2010, 10:15
Hmmm, still no go. I disabled TrueHD under "Codecs" then had pass-through checked under "Output" all along. I'll try it on another computer and see if that changes things.

Hi Exiton,

TrueHD isn't like DTS-HD where you can bitstream the core DTS file. The core on TrueHD files isn't accessible.

That's why a separate AC3 sound track (matching the TrueHD language) is always included on the BD disc.

Blight
11th January 2010, 12:32
What are the hardware requirement for DXVA (minimum ATI/NVIDIA/INTEL model required) ?

I have an NVIDIA 7600GT and the DXVA filter wont even connect to the EVR.
Also, why is H.264/VC1 disabled (unchecked) by default on the "Hardware Acceleration" tab, Isn't the whole purpose of a separate DXVA filter to ensure that DXVA wont interfere with standard usage of ffdshow?

betaking
11th January 2010, 12:37
What are the hardware requirement for DXVA (minimum ATI/NVIDIA/INTEL model required) ?

I have an NVIDIA 7600GT and the DXVA filter wont even connect to the EVR.
Also, why is H.264/VC1 disabled (unchecked) by default on the "Hardware Acceleration" tab, Isn't the whole purpose of a separate DXVA filter to ensure that DXVA wont interfere with standard usage of ffdshow?

DXVA Support:

Modern video graphics card have the possibility to decode partially or completely a video using DirectX Video Acceleration (DXVA) and reduces CPU usage. MPC - HC has an embedded video decoder using this technology to decode H.264, VC-1 video. Unfortunately this decoder supports for the moment only bitstream mode, which means that only most recent graphic cards are supported.

* ATI Radeon™ HD, ATI HD3850/3870/4850/4870/5800, AMD Hybrid CrossFireX™ 780G series for H.264 & VC-1
* nVidia GeForce 8500, 8600, 9600 or better

DXVA is quite susceptible, so if you want to use it you have to respect those rules:

* Windows XP, Vista and 7
* For Windows XP users, select Overlay Mixer, WMR7(9) or VMR7(9) Renderless
* For Vista users, select EVR or EVR Custom
* For DXVA and subtitles support select VMR7(9) Renderless or EVR Custom.
* Video decoder should be connected directly to the renderer. This means that no intermediate filters such as DirectVobSub or ffdshow can be inserted between decoder and video renderer.
* DXVA compliant x264 encoded files.
INTEL G4500HD Support DXVA !ONLY For vista and windows7!

albain
11th January 2010, 12:57
Hi Exiton,

TrueHD isn't like DTS-HD where you can bitstream the core DTS file. The core on TrueHD files isn't accessible.

That's why a separate AC3 sound track (matching the TrueHD language) is always included on the BD disc.

That's not true : TrueHD streams are like MLP except that they have AC3 frames interweaved, so there are 3 modes supported by FFDShow :
- TrueHD decoding : enable TrueHD decoder and uncheck TrueHD bitstream
- TrueHD bitstream : enable TrueHD decoder and check TrueHD bitstream
- AC3 core : disable TrueHD decoder but AC3 decoder is enabled or AC3 passthrough is enabled (and in that case the AC3 blocks are extracted to be decoded or bitstreamed)

Same thing for DTS-HD

tal.aloni
11th January 2010, 13:16
@andybkma
can you use DXVA with MPC-HC or MPC video decoder? (see codec properties during playback to make sure DXVA bitstream is actually used)

Gleb Egorych
11th January 2010, 13:23
DXVA Support:

Modern video graphics card have the possibility to decode partially or completely a video using DirectX Video Acceleration (DXVA) and reduces CPU usage. MPC - HC has an embedded video decoder using this technology to decode H.264, VC-1 video. Unfortunately this decoder supports for the moment only bitstream mode, which means that only most recent graphic cards are supported.

* ATI Radeon™ HD, ATI HD3850/3870/4850/4870/5800, AMD Hybrid CrossFireX™ 780G series for H.264 & VC-1
* nVidia GeForce 8500, 8600, 9600 or better

DXVA is quite susceptible, so if you want to use it you have to respect those rules:

* Windows XP, Vista and 7
* For Windows XP users, select Overlay Mixer, WMR7(9) or VMR7(9) Renderless
* For Vista users, select EVR or EVR Custom
* For DXVA and subtitles support select VMR7(9) Renderless or EVR Custom.
* Video decoder should be connected directly to the renderer. This means that no intermediate filters such as DirectVobSub or ffdshow can be inserted between decoder and video renderer.
* DXVA compliant x264 encoded files.
INTEL G4500HD Support DXVA !ONLY For vista and windows7!
That information is taken from 1st post in MPC-HC thread: http://forum.doom9.org/showthread.php?t=123537

But I have a few questions:
1. What is WMR and how to enable it?
2. Does DXVA work with VMR7 Renderless?

Information on MPC-HC homepage is a bit old but is more correct in my opinion: http://mpc-hc.sourceforge.net/DXVASupport.html

Modern graphics card offer the possibility to decode partially or completely a video stream using DirectX Video Acceleration (DXVA), in order to reduce CPU usage dramatically. MPC-HC includes an embedded video decoder that uses this technology, to decode H.264 and VC-1 with hardly any CPU time required.

Unfortunately the MPC-HC decoder only supports the "bitstream mode" at this stage, which means that only the most recent graphic cards are supported :

* nVidia series 8(9)xxx for H.264 only
* ATI Radeon HD series for H.264 and VC-1 decoding

"Motion compensation" mode might be added in the future to increase compatibility with older graphic cards, but I cannot promise anything. Mpeg2 and WMV accelerations are not supported either.

DXVA is quite picky, so if you want to use it you have to respect those rules :

* Windows XP users, select Overlay Mixer, VMR7, VMR9 or VMR9 renderless
* Vista users, select EVR or EVR custom renderer

The MPC-HC Video decoder must be connected directly to the renderer. That means no intermediate filters such as DirectVobSub or ffdshow can be inserted between the decoder and the video renderer.
Internal subtitles can work with the MPC Video decoder in DXVA mode, but the rules are even more restrictive :

* Windows XP users, select VMR9 renderless
* Vista users, select EVR custom renderer
* In "Options / Playback", tick the checkbox "Auto-load subtitles"

Warning for ATI users : VC1 acceleration is broken in 8.6 release (green frames appears randomly during playback). If you experiments such trouble, please revert to 8.5 build.

mikelebron
11th January 2010, 13:41
if that is the case then decoding the core only from a tru HD track is broken.

None of my true HD tracks play only the ac3 core but when the truehd decoder is enable track plays fine


That's not true : TrueHD streams are like MLP except that they have AC3 frames interweaved, so there are 3 modes supported by FFDShow :
- TrueHD decoding : enable TrueHD decoder and uncheck TrueHD bitstream
- TrueHD bitstream : enable TrueHD decoder and check TrueHD bitstream
- AC3 core : disable TrueHD decoder but AC3 decoder is enabled or AC3 passthrough is enabled (and in that case the AC3 blocks are extracted to be decoded or bitstreamed)

Same thing for DTS-HD

betaking
11th January 2010, 14:01
That information is taken from 1st post in MPC-HC thread: http://forum.doom9.org/showthread.php?t=123537

But I have a few questions:
1. What is WMR and how to enable it?
2. Does DXVA work with VMR7 Renderless?

Information on MPC-HC homepage is a bit old but is more correct in my opinion: http://mpc-hc.sourceforge.net/DXVASupport.html

But I have a few questions:
1. What is WMR and how to enable it?
I don't know WMR too. sorry!
2. Does DXVA work with VMR7 Renderless?
I use vista,so i can not test it!may be some xp user can test it!

albain
11th January 2010, 14:29
if that is the case then decoding the core only from a tru HD track is broken.

None of my true HD tracks play only the ac3 core but when the truehd decoder is enable track plays fine

I didn't know for TrueHD, but I recently received a bug report for DTS core regarding DTS-HD streams.

iron2000
11th January 2010, 14:55
Went back to 32bit ffdshow to try the DXVA function.

Build 3195 works well.
No blue tones, no green picture.
But on seek there is a slowdown and sometimes artifacts start appearing, picture starts to lag exploding with multicolored squares.
Seeking is also faster on the non-DXVA ffdshow.
Also the video is a little choppy on start(first few seconds) compared to the non-DXVA ffdshow.
Result vary with different videos though.

hoborg
11th January 2010, 15:04
Stupid question, but what should happend when i will try to play h.264 video if my hardware doesnot support DXVA?

ffdshow DXVA Video Decoder is loaded and report DXVA not used or ffdshow DXVA Video Decoder failed to load and ffdshow Video Decoder is used instead?

I am asking becouse ffdshow DXVA Video Decoder failed to connect to VMR9 renderer in graphstudio here on my working machine based on "Intel(R) 82945G Express Chipset Family (i945G0)"
I think this iGPU doesnot support NV12 colorpace (FFDshow crash if i will try to play MPEG-2i stream and disable all output and keep NV12) - can be related?

tal.aloni
11th January 2010, 15:19
hoborg:
when trying to play back H.264 on a machine that does not support DXVA (and both decoders are enabled for H.264),
ffdshow DXVA Video Decoder will reject connection and ffdshow Video Decoder is used instead.

tetsuo55
11th January 2010, 15:31
Not sure if this is the case all ready, but the VC1 decoder (and probably all ffmpeg based windows media decoders) have to reject interlaced content, because ffmpeg cannot decode that.

I also have 2 feature requests, im not sure how feasable these are

1. Import the foobar2000 noise sharpener. (http://foosion.foobar2000.org/components/?id=delta&version=1.0.0)
2. Include support for (realtime) replaygain

Blight
11th January 2010, 15:32
Gleb Egorych:
They mean "VMR7 / VMR9", there's no such thing as "WMR" unless it's something specific to MPC-HC.

tal.aloni
11th January 2010, 15:55
2. Include support for (realtime) replaygain

this comes up every now and then, the problem is that ffdshow only receive the audio stream, even if replaygain data is embedded in the header of the mkv / mp3, it's not included in the audio stream, and there is no efficient method for ffdshow to get it.

tetsuo55
11th January 2010, 16:00
this comes up every now and then, the problem is that ffdshow only receive the audio stream, even if replaygain data is embedded in the header of the mkv / mp3, it's not included in the audio stream, and there is no efficient method for ffdshow to get it.If i understand correctly:
The splitter has to parse and pass on the replaygain information to the decoder, that way ffdshow and any other decoder can implement replaygain adjustment.

Alante
11th January 2010, 17:54
I'm really confused about some thing regarding FFDshow. So i got this from wiky:

The first versions of ffdshow were published in April 2002, as an alternative to the DivX ;-) 3.11 and DivX 5.02 (which came bundled with Gator[1]) decoders of the time, and as a way to combine the speed and quality of MPlayer with popular Windows video players. It continues to support more formats, new and old, as FFmpeg developers add support for them.

The main developer was Milan Cutka. When he stopped updating the project in 2006, new maintainers opened the ffdshow-tryouts as a fork, where bugfixes, stability fixes, new features, and codec updates continue.. So it seems DS-tryouts project stooped in late 2008, yet DS MPEG-4 is still updating... :confused:

So as mentioned above, FFDshow project was stoped in 2006 and continued by FFDshow-Tryouts since the... But when I tried to download the last version from http://ffdshow-tryout.sourceforge.net/download.php this is what I found: 2008-12-21 Beta 6 has been released! yet FFDShow MPEG-4 Video Decoder seems newer: 2010-01-09

dann23
11th January 2010, 18:26
any news about subtitles in dxva mode?
and how to change contrast and brightenss when I play my movies with ffdshow in dxva mode?

hoborg
11th January 2010, 18:39
Hi.
I cannot test this by myself, but friend of mine told me he have this passthrough problem in rev. 3195:

AC3 and DTS passthrough is enabled
AC3 (s/PDIF encode mode) + Encode 5.1ch streams are enabled.

When he play DTS, FFDShow say DTS bitstream, but his reciever tell him it is DD, if he disable AC3 encode, reciever tells DTS.
Looks like FFDshow reencode DTS in to AC3 instead of passthrough it.

clsid
11th January 2010, 18:43
So as mentioned above, FFDshow project was stoped in 2006 and continued by FFDshow-Tryouts since the... But when I tried to download the last version from http://ffdshow-tryout.sourceforge.net/download.php this is what I found: 2008-12-21 Beta 6 has been released! yet FFDShow MPEG-4 Video Decoder seems newer: 2010-01-09
Beta6 is the latest official stable release. But development still continues and builds are available here:
http://sourceforge.net/projects/ffdshow-tryout/

her34
11th January 2010, 19:30
is a new beta going to be released soon since it's been over a year from last beta?

albain
11th January 2010, 19:54
Hi.
I cannot test this by myself, but friend of mine told me he have this passthrough problem in rev. 3195:

AC3 and DTS passthrough is enabled
AC3 (s/PDIF encode mode) + Encode 5.1ch streams are enabled.

When he play DTS, FFDShow say DTS bitstream, but his reciever tell him it is DD, if he disable AC3 encode, reciever tells DTS.
Looks like FFDshow reencode DTS in to AC3 instead of passthrough it.

This is a bug I am working on to.

Actually this is more like an audio driver bug raised by an improvement of FFDShow audio filter.

hoborg
11th January 2010, 20:27
This is a bug I am working on to.

Actually this is more like an audio driver bug raised by an improvement of FFDShow audio filter.

:thanks: for info.

Alante
11th January 2010, 20:43
Beta6 is the latest official stable release. But development still continues and builds are available here:
http://sourceforge.net/projects/ffdshow-tryout/

Hmm, how can Beta 6 be a so called stable release, since even the others are beta? And in others, the "tryouts" title extansion is removed, as it was the old FFDshow continued.

clsid
11th January 2010, 21:02
"as in others"? There are no others. All variations of ffdshow that you see from the past years are actually all the same. We all also call it just "ffdshow". The tryouts part is just for the project name on SourceForge, because "ffdshow" was obviously already in use.

Alante
11th January 2010, 21:54
Ok. :)

Elbart_
11th January 2010, 22:27
AVC-playback isn't working for me with 3189/90 and ffmpeg-mt, libavcodec works. I had to downgrade back to 3154 to have a working ffmpeg-mt.

rack04
11th January 2010, 22:43
AVC-playback isn't working for me with 3189/90 and ffmpeg-mt, libavcodec works. I had to downgrade back to 3154 to have a working ffmpeg-mt.

svc 3195 works fine for me.

tal.aloni
11th January 2010, 22:48
I have enabled DXVA for VC-1 in rev. 3198,
however, there is still an issue with VC-1 playback.

albain
11th January 2010, 22:48
@people having problems with AC3/DTS with AC3 encode checked

@people having problems to get AC3 passthrough/decoding on TrueHD streams and DTS passthrough/decoding on DTS-HD streams

This is fixed (I think) in revision 3197

Tal is also in good shape with DXVA, so recent added features are getting more stable :cool: !

There is still this problem with some TrueHD tracks, the parser needs to be improved

About DXVA, please forget revisions below 3195 (and now 3198 with last fixes, this is going tooo fast)


I have enabled DXVA for VC-1 in rev. 3198,
however, there is still an issue with VC-1 playback.

Maybe Casimir66 is back from vacations and can help us out ?

CruNcher
12th January 2010, 01:31
strange i tried everything to get this accelerated but it doesn't work no problems for MPC-HC Video Decoder though ?

http://e.dl.playstation.net/e/wipeouthd/assets/wipeoutHD_DE_1080p.zip

Nvidia 8800GT XP 32 195.94

Jeremy Duncan
12th January 2010, 09:05
Yes, I have just finished updating it: link (http://ffdshow-tryout.sourceforge.net/wiki/devel:building#using_innosetup_to_create_the_ffdshow.exe_fileby_jeremy_duncan)

I have updated the wiki again. I corrected some typos and I also corrected the bat file.

When I made the bat file before it was overwhelming as I don't usually make bat files and I was using xp mce, but I reformatted and installed vista 32 bit and then double checked the bat file and corrected some errors then tested to see if it works and I can build the files the wiki says to build in gcc.

So everything is fine now in the wiki section I added. :)
I will post the bat file below in case the wiki one is damaged by somebody this copy below will allow anybody to double check the wiki version is correct:

set MINGWROOT=C:\MinGW32

set MINGWBIN=%MINGWROOT%\bin
set MINGWINCLUDE=%MINGWROOT%\include
set MINGWINCLUDE=%MINGWROOT%\include\ddk
set MINGWINCLUDE=%MINGWROOT%\include\GL
set MINGWINCLUDE=%MINGWROOT%\include\SDL
set MINGWINCLUDE=%MINGWROOT%\include\sys
set MINGWLIB=%MINGWROOT%\lib
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\backward
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\bits
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\debug
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\basic_tree_policy
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\bin_search_tree_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\binary_heap_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\binomial_heap_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\binomial_heap_base_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\cc_hash_table_map_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\eq_fn
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\gp_hash_table_map_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\hash_fn
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\left_child_next_sibling_heap_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\list_update_map_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\list_update_policy
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\ov_tree_map_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\pairing_heap_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\pat_trie_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\rb_tree_map_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\rc_binomial_heap_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\resize_policy
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\splay_tree_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\thin_heap_
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\tree_policy
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\trie_policy
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\unordered_iterator
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\mingw32\bits
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\parallel
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\tr1
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\c++\tr1_impl
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include\ssp
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\include-fixed
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\install-tools
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\4.4.1\install-tools\include
set MINGWLIB=%MINGWROOT%\lib\gcc\mingw32\bin
set MINGWLIBEXEC=%MINGWROOT%\libexec\gcc\mingw32\4.4.1
set MINGWLIBEXEC=%MINGWROOT%\libexec\gcc\mingw32\4.4.1\install-tools
set MINGWLIB=%MINGWROOT%\MSYS
set MINGWLIB=%MINGWROOT%\MSYS\bin
set MINGWLIB=%MINGWROOT%\MSYS\etc
set MINGWLIB=%MINGWROOT%\MSYS\mingw
set MINGWLIB=%MINGWROOT%\MSYS\share\file

set MINGW=%MINGWROOT%;%MINGWBIN%;%MINGWINCLUDE%;%MINGWLIB%;%MINGWLIBEXEC%;%MSYS%

rem to add more resource paths just use the set command like above and then add it to the set PATH like below

set PATH=C:\MINGW32;%path%
set PATH=C:\MINGW32\bin;%path%
set PATH=C:\MINGW32\include;%path%
set PATH=C:\MINGW32\include\ddk;%path%
set PATH=C:\MINGW32\include\GL;%path%
set PATH=C:\MINGW32\include\SDL;%path%
set PATH=C:\MINGW32\include\sys;%path%
set PATH=C:\MINGW32\lib;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\backward;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\bits;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\debug;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\basic_tree_policy;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\bin_search_tree_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\binary_heap_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\binomial_heap_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\binomial_heap_base_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\cc_hash_table_map_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\eq_fn;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\gp_hash_table_map_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\hash_fn;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\left_child_next_sibling_heap_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\list_update_map_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\list_update_policy;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\ov_tree_map_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\pairing_heap_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\pat_trie_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\rb_tree_map_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\rc_binomial_heap_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\resize_policy;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\splay_tree_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\thin_heap_;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\tree_policy;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\trie_policy;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\ext\pb_ds\detail\unordered_iterator;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\mingw32\bits;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\parallel;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\tr1;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\c++\tr1_impl;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include\ssp;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\include-fixed;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\install-tools;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\4.4.1\install-tools\include;%path%
set PATH=C:\MINGW32\lib\gcc\mingw32\bin;%path%
set PATH=C:\MINGW32\libexec\gcc\mingw32\4.4.1;%path%
set PATH=C:\MINGW32\libexec\gcc\mingw32\4.4.1\install-tools;%path%
set PATH=C:\MINGW32\MSYS;%path%
set PATH=C:\MINGW32\MSYS\bin;%path%
set PATH=C:\MINGW32\MSYS\etc;%path%
set PATH=C:\MINGW32\MSYS\mingw;%path%
set PATH=C:\MINGW32\MSYS\share\file;%path%

cmd

albain
12th January 2010, 09:10
Thank you Jeremy

Jeremy Duncan
12th January 2010, 10:31
Thank you Jeremy

Your welcome. In the time from my previous post I installed the rest of the sw and made the new ffdshow using the instructions from the wiki in vista 32 bit.

link (http://www.mediafire.com/?y53m1jnyozm)

Maybe somebody who knows how to test how fast the fps results are can test this ffdshow I made to other ffdshow versions?

I would like to see the test results. :)
No files were added or removed from the svn package I downloaded. I say this because in the previous one I built it used SEt's patch.

tal.aloni
12th January 2010, 10:57
How Jeremy Duncan got the files...
The compilers Jeremy Duncan used to create the files
How Jeremy Duncan configured the visual studio compiler


lol...
I appreciate your contribution, I hope one of the Pros here will have time to overview and merge the two entries.


The below section of the wiki was made by me, Jeremy duncan, and it shows how I made FFDshow.exe


ffdshow.exe, I got to get me one of these!

_xxl
12th January 2010, 10:59
ffdshow.exe
What exe?

tal.aloni
12th January 2010, 11:00
nvm, I got it, he means the setup exe.

tal.aloni
12th January 2010, 11:18
strange i tried everything to get this accelerated but it doesn't work no problems for MPC-HC Video Decoder though ?

http://e.dl.playstation.net/e/wipeouthd/assets/wipeoutHD_DE_1080p.zip

It plays fine with rev. 3195+.
make sure you have checked H.264 acceleration under DXVA settings.

Tal

Elbart_
12th January 2010, 11:24
svc 3195 works fine for me.
I narrowed it down, with 3176_clsid ffmpeg_mt works, with 3190_clsid it doesn't.

tal.aloni
12th January 2010, 13:10
I narrowed it down, with 3176_clsid ffmpeg_mt works, with 3190_clsid it doesn't.

it will again with 3195+

tal.aloni
12th January 2010, 14:19
DXVA issues with VC-1 are now resolved starting with (Edit:) rev. 3200.

(sorry XhmikosR :))

XhmikosR
12th January 2010, 14:22
ffdshow_rev3200_20100112 (http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1)

NiFa
12th January 2010, 16:35
I tried newest revision (3200), and everything works! I have no problems with AC3 or DTS passthrough or AC3 encoder.
Thanks to everyone who works with ffdshow and got these problems solved.

clsid
12th January 2010, 17:04
MingW32 works fine for me in Vista x64, so I am not sure why you needed that weird workaround.

NiFa
12th January 2010, 18:12
Is there any possibilities to update to subtitles part in ffdshow, so that it loads ass/ssa settings correctly? Now when I use ffdshow with ass/ssa subtitles, thehere is problems with colors, shadows and outline settings, they aren't right. You can test this with any softsubbed anime using MPC-HC's internal renderer and ffdshow's subtitles.

deets
12th January 2010, 18:15
do we know if there are any plans to support bbc HD and live streams via DXVA?

consultant
12th January 2010, 18:15
WhenI download and install that 3200 build above, x64 version, I get source file is corrupt when it tries to install. I assume that is the 64-bit version?

I even uninstalled previous version and rebooted then tried it.

tal.aloni
12th January 2010, 18:18
WhenI download and install that 3200 build above, x64 version, I get source file is corrupt when it tries to install. I assume that is the 64-bit version?

I even uninstalled previous version and rebooted then tried it.

it happened for me too, probably some corruption in the upload process.

XhmikosR
12th January 2010, 18:28
MediaFire is becoming less reliable every day... Try now, I re-uploaded the x64 build so it should be fine (I compared also the MD5 checksums).

NiFa
12th January 2010, 20:44
Below are pictures with differences between ffdshow and MPC-HC internal subtitle renderer.

MPC-HC internal subtitle renderer
http://img684.imageshack.us/img684/6035/mpchcinternalsubtitlere.th.png (http://img684.imageshack.us/i/mpchcinternalsubtitlere.png/)
ffdshow
http://img689.imageshack.us/img689/5564/ffdshowsubtitles.th.png (http://img689.imageshack.us/i/ffdshowsubtitles.png/)

CiNcH
12th January 2010, 20:52
Seems both, H.264 and VC-1 DXVA decoders, have no NALU/Access Unit parser, so they expect the source/splitter/demuxer filter to deliver exactly one NALU/Access Unit per MediaSample.

Elbart_
12th January 2010, 21:14
it will again with 3195+

Yes, with 3200, ffmpeg-mt works again. Thanks to devs and helpers!

deets
12th January 2010, 21:23
Seems both, H.264 and VC-1 DXVA decoders, have no NALU/Access Unit parser, so they expect the source/splitter/demuxer filter to deliver exactly one NALU/Access Unit per MediaSample.

this being the same reason we cant use MPC DXVA for live streams either?

clsid
12th January 2010, 23:04
The normal ffdshow decoder is also lacking a full parser for access units.

Ger
12th January 2010, 23:28
Perhaps, but whatever haruhiko added in 2008 when he worked with CiNcH & co was enough to make the ffdshow software decoder work well with live DVB streams.

We (DVB users) have been hoping that Casimir would add this to the MPC-HC DXVA decoder for a while, like haruhiko did for the ffdshow software part. But if albain could add this to ffdshow's DXVA decoder (would be very much appreciated) then I think it would be possible to use ffdshow for most/all DVB channels/streams. At least for video.

For audio (separate issue) I don't think LATM encapsulated HE-AAC is suported in ffdshow. Not the most common format in DVB streams, but it's used in some countries like Norway and New Zealand. ffdshow doesn't show up as an option for AAC decoder in DVBViewer, and neither the Haali nor the Gabest/MPC-HC TS splitter seems to ID the audio track correctly. Monogram AAC decoder + DVBViewer works fine, as does VLC. I can provide a sample TS recording AVC + LATM/HE-AAC from Norwegian DVB-T if anyone wants to look into it, but I think the TS splitters must be worked on first.

crlorentzen
13th January 2010, 00:08
I tried newest revision (3200), and everything works! I have no problems with AC3 or DTS passthrough or AC3 encoder.
Thanks to everyone who works with ffdshow and got these problems solved.

agreed, 3200 works perfectly. I don't even need to use the Connect as PCM first check box and all acs/dts pass-through works perfectly. Thanks to all especially you albain.

iron2000
13th January 2010, 05:26
3200 works ok here too but with DXVA the picture slows down and explodes to artifacts on seek.
Happens on both 32-bit and 64-bit versions.

Jeremy Duncan
13th January 2010, 06:09
3200 works ok here too but with DXVA the picture slows down and explodes to artifacts on seek.
Happens on both 32-bit and 64-bit versions.

If you open ffdshow video decoder, decoder options.
Then uncheck these two boxes: Detect soft telecine, Drop frame on delay.
Then try out your test clip where the picture goes funny, is the picture still garbled?

http://thumbnails23.imagebam.com/6353/9635f563520739.gif (http://www.imagebam.com/image/9635f563520739)

CiNcH
13th January 2010, 09:33
The normal ffdshow decoder is also lacking a full parser for access units.
True for VC-1, not for H.264.

iron2000
13th January 2010, 12:26
If you open ffdshow video decoder, decoder options.
Then uncheck these two boxes: Detect soft telecine, Drop frame on delay.
Then try out your test clip where the picture goes funny, is the picture still garbled?



Thanks but the problem only happens with the DXVA decoder.
Will changing the settings in the non-DXVA decoder affect it?
Even if I wanted to change the settings, the profile that calls the DXVA decoder doesn't have the decoder options.

I've set ffdshow such that it plays video with resolution equals of larger than my desktop resolution with the DXVA decoder.
Playback is very nice as always with the non-DXVA decoder.

albain
13th January 2010, 12:53
That's right, the decoder options are not available in DXVA decoder but I don't know if they are used or usable : the options are not accessible but the settings are present (they are set to default).

Elbart_
13th January 2010, 14:44
Hm, weird.
After rebooting because of the Windows-update, I tried to play an AVC-video, and ffmpeg-mt again wasn't working (libavcodec did), although it did before the reboot. After reinstalling 3200, it worked again. I wonder, why it's only ffmpeg-mt which has these problems?

albain
13th January 2010, 15:08
Can we remove the following option in FFDShow audio output section ?

"Don't use WAVEFORMATEXTENSIBLE header when not needed"

I don't see the interest of keeping it, this doesn't mean anything by the way

tal.aloni
13th January 2010, 15:39
Intel has recently posted an article about copying DXVA decoded frame from the portion of the memory that belongs to the GPU back to the system RAM.

this could mean we will be able to apply all post processing filters after utilizing DXVA decoding. (except maybe the resize filter)
we're still not sure if this could be applied for DXVA 1.0 as well, we do have some interesting ideas.

albain has volunteered (again) to try and implement it.

link:
http://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers/

p.s.
the memory bandwidth required to process 1080p24 that way seems easily obtainable.

STaRGaZeR
13th January 2010, 16:07
Yay! :)

iron2000
13th January 2010, 16:25
If you open ffdshow video decoder, decoder options.
Then uncheck these two boxes: Detect soft telecine, Drop frame on delay.
Then try out your test clip where the picture goes funny, is the picture still garbled?



I disabled both options from the DXVA profile through the registry but the artifects on seek is still there.

tal.aloni
13th January 2010, 17:08
H.264 DXVA seeking artifacts happens for me too, probably the decoder does not wait for an I frame. I'll have a look.

STaRGaZeR
13th January 2010, 17:13
How's seeking speed compared to software decoding and MPC's DXVA, specially if you seek to B frames? My PC has been on repairs for quite some time and I haven't tested ffdshow's DXVA yet.

tetsuo55
13th January 2010, 17:23
Intel has recently posted an article about copying DXVA decoded frame from the portion of the memory that belongs to the GPU back to the system RAM.

this could mean we will be able to apply all post processing filters after utilizing DXVA decoding. (except maybe the resize filter)
we're still not sure if this could be applied for DXVA 1.0 as well, we do have some interesting ideas.

albain has volunteered (again) to try and implement it.

link:
http://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers/

p.s.
the memory bandwidth required to process 1080p24 that way seems easily obtainable.keep in mind this only works for DXVA2 and thus vista and higher, so DXVA1 will not work.(although some things could be done in shaders)

tal.aloni
13th January 2010, 17:37
I have no reason to think it would not work on DXVA1,
according to MSDN, we can use DXVA 1.0's GetBuffer() with 0xFFFFFFFF to get the pointer to the decoded buffer, copy to RAM (using the above method), apply post processing (except resize of course) and the question remains if we can copy it back to the GPU memory.
(as alternative to the last stage, we can also use VMR9's AllocatorPresenter to override the original image completely)

Jeremy Duncan
13th January 2010, 18:32
That's right, the decoder options are not available in DXVA decoder but I don't know if they are used or usable : the options are not accessible but the settings are present (they are set to default).

It would be intersting if you made a build with both video decoders: dxva and regular video decoder, use the settings I recommended where you uncheck those options.

That way there would be no mistake that this would help or not.

I have updated the ffdshow wiki in the sw section. I showed how visual studio basic, the free version, can make ffdshow.ax. I showed how to fix the error "'atlbase.h': No such file or directory" when using the free visual studio, and I built a ffdshow installer to verify that you can.

So if somebody wants to learn how it won't cost them anything. :)

link (http://ffdshow-tryout.sourceforge.net/wiki/devel:building#using_visual_studio_to_create_the_files_listed_in_the_compilers_section)

tal.aloni
13th January 2010, 19:00
I disabled both options from the DXVA profile through the registry but the artifacts on seek is still there.

I do not have those artifacts now, but I remember them from one of the previous buids. so either it's been solved, or the conditions do not occur right now.

anyway, those options have nothing to do with DXVA and should not have any effect.

Sebastiii
13th January 2010, 19:07
:thanks: Jeremy Duncan for Wiki :)

I'll try to try :)
Seb.

tal.aloni
13th January 2010, 21:37
I was able to modify DXVA 1.0 decoded image using the code below (under Windows XP):
however, there's still a lot to figure, for instance, I still need to understand how exacly the raw image is stored, but the fact is that I can read it, modify it, and have the renderer show it...


HRESULT hr = E_INVALIDARG;
BYTE* pDXVABuffer;
DWORD dwTypeIndex = 0xffffffff;
switch (m_nEngine)
{
case ENGINE_DXVA1 :

LONG lStride;
hr = m_pAMVideoAccelerator->GetBuffer(dwTypeIndex, bufferIndex, FALSE, (void**)&pDXVABuffer, &lStride);
ASSERT (SUCCEEDED (hr));
// modify buffer here
hr = m_pAMVideoAccelerator->ReleaseBuffer(dwTypeIndex, bufferIndex);
ASSERT (SUCCEEDED (hr));

Edit:
according to specs, this should run after Execute and before EndFrame, however, according to practive, this should run immediately after EndFrame()

dstln
14th January 2010, 05:18
Loving the dxva/force dxva settings :)

JarrettH
14th January 2010, 05:38
Are there no more official releases?

Keiyakusha
14th January 2010, 06:07
Does anyone tried to compare speed of ffdshow's DXVA to the original one in MPC-HC? So far I saw only one benchmark and it shows that for some reason FFDShow is twice slower. I don't want to believe in that... Its not like I know a good way of testing DXVA decoding speed, but still I'm curious.

tal.aloni
14th January 2010, 07:04
Does anyone tried to compare speed of ffdshow's DXVA to the original one in MPC-HC? So far I saw only one benchmark and it shows that for some reason FFDShow is twice slower.

It's almost exactly the same implementation, so it can't be very different in speed.

CruNcher
14th January 2010, 07:51
yes it doesn't work @ all :P
whatever i do i land @ MPC-HC Video Decoder decoding H.264 streams via the VP2 and ffdshow doesn't trigger any DXVA @ all even if forced like disable H.264 enable H.264 DXVA :(

hoborg
14th January 2010, 08:11
Hi.
I tested DXVA decoder (rev.3200) - h.264 seems to be OK, but i have problems with VC-1 - looks like bad frame order.
Tested on ATI 4770 (cat. 9.12 + Win7 x64). No problem with MPC decoder.

tal.aloni
14th January 2010, 08:23
Hi.
I tested DXVA decoder (rev.3200) - h.264 seems to be OK, but i have problems with VC-1 - looks like bad frame order.
Tested on ATI 4770 (cat. 9.12 + Win7 x64). No problem with MPC decoder.
post / PM a sample please!
also, please try 3198 and tell me if the order is correct.

tetsuo55
14th January 2010, 09:12
post / PM a sample please!
also, please try 3198 and tell me if the order is correct.keep in mind that both haali and mpc-hc splitter do wierd things with the timestamps.
Contact casimir for more information, so this can be fixed once and for all.

hoborg
14th January 2010, 09:17
post / PM a sample please!
also, please try 3198 and tell me if the order is correct.

Sended.
Can you compile 3198 for me? On http://xvidvideo.ru there are only 3195 then 3200...

BTW, i tested it with Haali (1.9.355.21) as splitter -
So combination of:
Haali + MPC decoder - OK
Haali + FFDshow DXVA - not OK.

albain
14th January 2010, 09:40
I was able to modify DXVA 1.0 decoded image using the code below (under Windows XP):
however, there's still a lot to figure, for instance, I still need to understand how exacly the raw image is stored, but the fact is that I can read it, modify it, and have the renderer show it...


HRESULT hr = E_INVALIDARG;
BYTE* pDXVABuffer;
DWORD dwTypeIndex = 0xffffffff;
switch (m_nEngine)
{
case ENGINE_DXVA1 :

LONG lStride;
for (int bufferIndex=0; bufferIndex<m_nPicEntryNumber; bufferIndex++)
{
hr = m_pAMVideoAccelerator->GetBuffer(dwTypeIndex, bufferIndex, FALSE, (void**)&pDXVABuffer, &lStride);
ASSERT (SUCCEEDED (hr));
// modify buffer here
hr = m_pAMVideoAccelerator->ReleaseBuffer(dwTypeIndex, bufferIndex);
ASSERT (SUCCEEDED (hr));

(this should run after Execute)

Thanks Tal, this sounds pretty exiting


I have not done like you : I am in the TDXVADecoder::DisplayNextFrame method and instead of displaying it I come back to TvideoCodecLibavcodecDxva and call a new method to copy the frame back from the GPU into the system memory, then process it through FFDShow filters.
In that way we should be able to apply all the filters including resize, crop... (I hope)

The tough part is to reproduce the TvideoCodecLibavcodec::decompress method (just after decoding) to create a TPict and get back into the nominal code path.

tal.aloni
14th January 2010, 10:46
I have not done like you : I am in the TDXVADecoder :: DisplayNextFrame method


The value 0xFFFFFFFF is valid only between calls to IAMVideoAccelerator::BeginFrame and IAMVideoAccelerator::EndFrame


so according to the specs (which may be stricter than actuall driver / hardware)

// Decode bitstream
CHECK_HR (Execute());
if (any post processing is active)
{
//TDXVADecoder::ProcessDecodedFrame
CHECK_HR (ProcessDecodedFrame()); // copy, apply post processing and copy back
}
CHECK_HR (EndFrame(nSurfaceIndex));

anyway, I'm sure you'll figure out the best way, it is indeed exciting.

http://msdn.microsoft.com/en-us/library/dd376003(VS.85).aspx

Lam3rD
14th January 2010, 15:24
Hello. I don't know if anyone cares about this, but some of the internal AVISynth functions doesn't work the way they are supposed to do.

I'm trying to make something simple for ITU/NON-ITU detection on DVDs as a part of a bigger script, however it doesn't work as expected, so I guess there might be something wrong with ffdshow_setsar

Temp=stackhorizontal(crop(0,16,32,-16),crop(width-32,16,0,-16)).grayscale
(width==720)?FrameEvaluate("AverageLuma(Temp))<30?ffdshow_setsar(ffdshow_sar_x*45,ffdshow_sar_y*44):ffdshow_setsar(ffdshow_sar_x,ffdshow_sar_y)"):ffdshow_setsar(ffdshow_sar_x,ffdshow_sar_y)
This isn't the exact script, it's boosted so it could easily go bananas. I'm watching the Output SAR/DAR in the OSD - it does change and it shifts it's location, but the image remains with exactly the same shape.

Also I would love to know if there are any other variables/functions, that I could use to interact between ffdshow and it's AVISynth filter. I have never found those listed anywhere (besides being used in the script on the wiki). It'd be cool if there are a few showing the results from the auto detections ffdshow performs - PC/TV Levels; Interlaced/Progressive flags etc.

albain
14th January 2010, 16:13
I have a problem and I kinda lack of knowledge on that part

Maybe Tal or someone else can help me out on this

The frames that are in the GPU are in a flat buffer

Whereas FFDShow works with color planes : for example with a YCbCr colorspace you have 3 planes so 3 buffers.

I know the colorspace, I have a flat buffer.

How can I convert it into n buffers ?

This is an example but it applies to all colorspaces.

Are there built functions inside FFDShow to do that ?

This is a necessary step to build the TPict and to feed the processing filters

Thanks

EDIT : okay, I think that this is like in TvideoCodecUncompressed.
Another problem : the CopyBack method used to copy from the DXVA buffer to system memory uses SSE4 instructions which are not templatized : I mean that you don't call SSE 1,2,... instructions dirrectly but call methods that would call the instructions if the CPU support them or call a coded method that can do it instead.

hoborg
14th January 2010, 17:28
post / PM a sample please!
also, please try 3198 and tell me if the order is correct.

OK, i finished test right now.
The sample i posted to you works just fine in 3198 like others VC-1 samples i have.
In 3200 sample i sended to you are broken, but rest of VC-1 videos i have seems to be OK.

Sebastiii
14th January 2010, 19:16
I am in admiration of you guys :)
And exciting too :)

Good luck :)
Seb.

therealjoeblow
14th January 2010, 19:50
Two things:

1) Could someone please tell me if the "profiles and presets" function works with the DXVA settings - IE, can I set a profile to enable DXVA for H264 when W=1920, and be off when W<1920 (that way I can still use the Lanczos resizer for my 720p encodes)?

and...

2) DXVA is also the terminology used by most filters for hardware decoding of DVD/MPEG2 - can we add that as an additional option to the DXVA options screen (beside the tickboxes for H246 and VC1) , and remove the less intuitive "set interlace flag in output media type" from the regular decoder's "output" tab (the latter setting is what triggers DXVA to be initiated for DVD/MPEG2 decoding).

clsid
14th January 2010, 19:56
1) yes, you can make presets
2) ffdshow does not have DXVA capabilities for MPEG-2, I think you are confusing DXVA with hardware deinterlacing

therealjoeblow
14th January 2010, 20:12
@Blight

What are the hardware requirement for DXVA (minimum ATI/NVIDIA/INTEL model required) ?

I have an NVIDIA 7600GT and the DXVA filter wont even connect to the EVR.
Also, why is H.264/VC1 disabled (unchecked) by default on the "Hardware Acceleration" tab, Isn't the whole purpose of a separate DXVA filter to ensure that DXVA wont interfere with standard usage of ffdshow?

For ATI Cards:

http://en.wikipedia.org/wiki/Unified_Video_Decoder#UVD_enabled_GPUs

For NVIDIA Cards:

http://en.wikipedia.org/wiki/Nvidia_PureVideo#Table_of_PureVideo_.28HD.29_GPUs

STaRGaZeR
14th January 2010, 20:15
(the latter setting is what triggers DXVA to be initiated for DVD/MPEG2 decoding).

Nope, it doesn't trigger DXVA, just hardware deinterlacing.

tal.aloni
14th January 2010, 21:56
OK, i finished test right now.
The sample i posted to you works just fine in 3198 like others VC-1 samples i have.
In 3200 sample i sended to you are broken, but rest of VC-1 videos i have seems to be OK.

the "bug" is related to B frame ordering (bReorderBFrame variable),
MPC-HC filter behaves differently for each splitter,
I'm hoping for a better solution: I hope a common ground can be reached on how the splitter should behave. (reorder B frames or not).
however, I'm not sure I have a full understanding of the issue at hand, please correct me if I'm wrong in any way.

Regards,
Tal

tal.aloni
14th January 2010, 22:09
albain,
you may already know this, but:

1. I think the colorspace in the flat DXVA decoded buffer is NV12: 8-bit Y plane followed by an interleaved U/V plane with 2x2 subsampling.
however, it seems that each plane is drawn in blocks, I had some experience with a similar format in the past, so I can try to help in deciphering the format if all else fails.

2. I'm not sure what's the best route to convert it to FFDShow.

3. It would be indeed best to "templetize" the copy mechanism, so you could use SSE 4 / SSE 2 / memcpy, I don't know how, but I think that there are a few examples already in ffdshow.

sorry for not being of more assistance,
Tal

Jeremy Duncan
15th January 2010, 08:53
:thanks: Jeremy Duncan for Wiki :)

I'll try to try :)
Seb.

Your welcome. I have updated the wiki again; this time I described how to build icl11 builds.

link (http://ffdshow-tryout.sourceforge.net/wiki/devel:building#prerequisite_software)

And to clsid, visual studio pro as described by me in the wiki can compile kerneldeint, tomsmocomp, xvidcore. libmpeg2.
I will post my ffdshow I build today, 3202 using SE't patch and where visual studio built kerneldeint, libmpeg2, tomsmocomp, xvidcore, so you can test it to see if it's ok and the wiki is fine since my build is fine.

link (http://www.mediafire.com/?zzg5ky4qoyt)

albain
15th January 2010, 09:27
albain,
you may already know this, but:

1. I think the colorspace in the flat DXVA decoded buffer is NV12: 8-bit Y plane followed by an interleaved U/V plane with 2x2 subsampling.
however, it seems that each plane is drawn in blocks, I had some experience with a similar format in the past, so I can try to help in deciphering the format if all else fails.

2. I'm not sure what's the best route to convert it to FFDShow.

3. It would be indeed best to "templetize" the copy mechanism, so you could use SSE 4 / SSE 2 / memcpy, I don't know how, but I think that there are a few examples already in ffdshow.

sorry for not being of more assistance,
Tal

1. The current implementation uses NV12 colorspace, but NV12 is far from being the best colorspace compared to RGB ones.
I hope that we can use others with DXVA. But for the moment indeed I assume that we have NV12 buffers

2. I have made a patch. Here is the link (http://damienbt.free.fr/dxva_patch.diff). I cannot test it because I am at work and my laptop does not support dxva.
The project file is updated because a new macro (DXVA_INSIDE_FFDSHOW) adds DXVA decoding and dialogs inside FFDSHow video filter.

I have copied the decompress method from TvideoCodecLibavcodec and splitted into 2 methods
.
The processFrame method is called at the end (after DXVA or software decoding for a given frame) and from the AVFrame (frame) will analyze it and create a TffPict (uncompressed picture) to process it through the FFDShow internal filters.
What I have done is to fill the AVFrame structure with the DXVA buffers that I have copied back from the GPU.
I took my inspiration from TvideoCodecUncompressed class that received flat uncompressed buffers too.
Then it should work.


This should work but what I am not sure about what the MPC patch affect or not : there may be some missing parameters in the AVFrame (I have set a few such as the pix_fmt, the type of frame).

If you have time to review the patch thank you !

Jeremy Duncan
15th January 2010, 10:13
libmpeg2_ff.dll shouldn't be compiled by MinGW GCC because they are slower than MSVC 2008.

I ran a test using the timecodec on the ffdshow wiki and here are the test result.
One build using the visual 2008 compiler the other one uses msys, both built in xp mce.

icl 11, 3202, vmr7, 720p, libmpeg2 built in msvc
user: 5
kernel: 3
total : 8
real: 91
fps: 492.7
dfps: 47.7

icl 11, 3202, vmr7, 720p, libmpeg2 built in gcc msys
user: 5
kernel: 3
total : 8
real: 89
fps: 500.7
dfps: 48.8

ffdshow video codec settings
Codecs tab
Set Mpeg2 to Libmpeg2, and check "DVD decoding".
Set Avisynth to Avisynth, Raw video to All supported

Subtitles tab, Unchecked
Uncheck "Decode closed captions"
Uncheck "Accept embedded subs"
Uncheck "Accept SSA, ASS, ASS2 Subtitle (experimental)
Vobsub subpage, uncheck Vobsub Enable.

Avisynth tab checked
YV12 checked,
Add FFdshow Video source Unchecked,
3:2 Pulldown box: Ignore Pulldown checked,
check Buffer back/Ahead: 3, 3

setmtmode(2)
Last=ffdshow_source()
setmemorymax(550)
setmtmode(2)
a= last
b=a.Spresso()
SeeSaw(a,b)
LimitedSharpenFaster(strength=11)
LimitedSharpenFaster(strength=11)
distributor()

Resize & aspect tab checked
Process whole image checked
Specify horizontal and vertical Resize: 1280, 720
Process Pixel aspect ratio internally checked
No aspect ratio correction checked
spline
Luma Sharpen: 0.00
Luma Guassian Blur 0.50
Accurate rounding checked

Output tab
rgb32 checked
high quality yv12 to rgb conversion checked

rgb conversion tab
ycbcr: itu-bt 601
high quality yv12 to rgb conversion checked
Dithering checked
contrast: standard
Output levels: Tv/Projector

The test clip was a mpeg2 made into a avi using virtual dub, standard definition resolution for ntsc movies.

ffdshow libmpeg2 built using msys (http://www.mediafire.com/?cmvm0inz3mm)
ffdshow libmpeg built using msvc (http://www.mediafire.com/?zzg5ky4qoyt)

Cheesegeezer
15th January 2010, 23:09
Hey there guys, I could really do with some help.

I'm using win 7 32bit and i'm trying to use FFDShow Video to decode both SD Live TV and BBC HD.

I've disabled the M$ DVD-DTV video and audio decoders along with the MP3 one. I've set merit of FFDShow to max in Radlight filter manager.

In the FFDShow Video Config, I have set MPEG2 to libmpeg2 and MPEG in AVI to libmpeg2 and Raw Video to all Supported.

Im using graph studio and remotely connecting to win7MCE, I'm using a DVB-S2 TV Card, but for the life of me FFDShow can't be inserted into the graph for MPEG2 streams or the h264 stream. Graphstudio simply refuses to insert the FFDShow Video Filter.

Have I missed something or is FFDShow not compatible with live TV in win7.

Any help would be greatly appreciated.

Many Thanks

Dave

Jeremy Duncan
16th January 2010, 05:05
2. I have made a patch. Here is the link (http://damienbt.free.fr/dxva_patch.diff). I cannot test it because I am at work and my laptop does not support dxva.
The project file is updated because a new macro (DXVA_INSIDE_FFDSHOW) adds DXVA decoding and dialogs inside FFDSHow video filter.

I can build a ffdshow for you using the patch and post it here for people to test. But I have a few questions first.

Reading the diff file it goes into the folder where the ffdshow_2008.vcproj is?
And I would build ffdshow_2008.vcproj not ffdshow_2008.sln?
May I ask that you supply a patch that's built with the sln version as I know I can do that easily?

tal.aloni
16th January 2010, 09:01
@Jeremy,
1. Thanks for the offer, but the patch is not doing anything significant right now, it was only meant for review.

@everyone
unfortunately, the reading speed of the decoded DXVA frame is not fast enough to process 720p24 on CPUs without SSE 4.1, so Phenom, Athlon and Pentium 4 could not use full frame DXVA post processing.

however, writing speed to the frame is much faster,
so it seems we can overlay osd / subtitles (write only)
or blend them (little read involved) fast enough for the older CPUs to handle.

albain
16th January 2010, 16:43
Yes, afterwards we will make performance tests to figure out if :

1/ DXVA decoding + copy back to system memory + FFDShow software processing

is faster than

2/ FFDSHow software decoding + processing

So at the end the DXVA filter will still be useful to develop dedicated DXVA internal postprocessing filters

Status : FFDSHow postprocessing work now on DXVA decoded picture copied back to system memory (including resize) but there is a deadlock

Reino
16th January 2010, 16:50
Perhaps I'm missing something, but does anyone know where the OSD-profile bar has gone? I've had rev.1341 installed untill today (today I updated till latest one) and already with rev.1341 the ability to save OSD-profiles has been removed as well.
I'd like to know why it has been removed and if it's coming back at all?
http://img29.imageshack.us/img29/4310/ffdshowosd.png

clsid
16th January 2010, 17:24
OSD settings are now stored as part of your Profile/Preset.

tal.aloni
16th January 2010, 17:51
1/ DXVA decoding + copy back to system memory + FFDShow software processing

is faster than

2/ FFDSHow software decoding + processing

my phenom is fast enough for 2, but can't handle 1. (I'm guessing it will be different for SSE 4.1 capable CPUs)

however, overlaying OSD / Subtitles works quite well.

Jeremy Duncan
16th January 2010, 22:08
The svn is not downloading the files properly, please fix it. :)
I have a question, if I make a 64 bit ffdshow.ax, does the gcc files need to be 64 bit also, or can I use the custom mingw 32 bit to build the gcc files and use them with a 64 bit ffdshow.ax?

clsid
16th January 2010, 22:14
Everything must be 64-bit. You need MinGW64.

Jeremy Duncan
16th January 2010, 22:27
Everything must be 64-bit. You need MinGW64.

If I installed your 64 bit ffdshow then took the gcc files:libavcodec, mplayer, ffmpeg and put the in the bin folder to build my ffdshow would that work?

Edit, and if I used mingw64 myself, which would I install? Can you please link to the one I would use in Windows 7 64 bit, the download link? I don't use mingw usually so I have no clue on which one I need.

Edit, I found these instructions by Casimir666,

I have finally find a way to compile x64 edition with GCC http://smileys.inzenet.org/repository/Content/U_JUMP%7E1.GIF.

To do this, you should have :
- Download MingW64 chaintool for i686-mingw platform
(http://sourceforge.net/project/showfiles.php?group_id=202880&package_id=245516&release_id=546049)
- Download MSys, and configure it with MingW64 with postinstall script (http://sourceforge.net/project/showfiles.php?group_id=2435)
- Patch MSys with latest release of CoreUtils and Bash
- Install Subversion command line client from http://subversion.tigris.org (and add path in msys.bat if necessary)

To compile ffmpeg, start MSys and execute script : ..\mpcvideodec\ffmpeg_x64\buildffmpeg.sh

DO NOT copy manually libgcc.a and libmingwex.a to mpc "lib64" folder, the script will do it for you. The reason it's so complicated is that MingW64 libraries should be compiled with -fno-leading-underscore option to be link statically with Visual Studio.

If somebody want to compare performance between VS build and GCC build i have uploaded a release here :
http://www.zshare.net/download/17954266d7edd8f9/

link (http://forum.doom9.org/showthread.php?p=1177589#post1177589)

I have a few questions. Do I install mingw 64 before downloading the "MingW64 chaintool for i686-mingw platform". If so please link to the download fo both files because I don't know which one to choose.
Once I get that step down I'll try to figure the rest out myself. :thanks:

clsid
16th January 2010, 23:01
Those instructions are not needed for ffdshow.
Just unzip MinGW64 and add its /bin dir to your PATH environment variable.
I am using the 4.4.0 MinGW64 build.

albain
17th January 2010, 00:34
The svn is not downloading the files properly, please fix it. :)
I have a question, if I make a 64 bit ffdshow.ax, does the gcc files need to be 64 bit also, or can I use the custom mingw 32 bit to build the gcc files and use them with a 64 bit ffdshow.ax?

I had problems too with the repository lately when trying to work on a branch (too many files to deal with)
So I gave up on branching

Andy o
17th January 2010, 04:42
Hey guys does the Dolby Digital Plus decoder support 7.1 right now? I'm playing a Dolby test bluray and ffdshow only outputs 5.1:

http://forum.doom9.org/attachment.php?attachmentid=10679&stc=1&d=1263699710

Not a big deal since there's virtually no DD+ blurays besides that test disc AFAIK. Just wanted to know.

Using MPC-HC 1453 and ffdshow 3181. Could it be the splitter? I'm using the internal one.

tal.aloni
17th January 2010, 05:56
Hey guys does the Dolby Digital Plus decoder support 7.1 right now?

no. there are no new DD+ 7.1 releases anyway.

Andy o
17th January 2010, 06:01
Yeah, no big deal, was just curious.

Jeremy Duncan
17th January 2010, 08:38
I had problems too with the repository lately when trying to work on a branch (too many files to deal with)
So I gave up on branching

It's something to do with Boost. I tried to download files from the svn and the trunk is corrupt and the bitstreaming branch is corrupt too.

If I download to my c: drive it doesn't show a error but if I download to my desktop I get a error every time with boost.
The files I download to my c:\ drive won't let me make xvidcore in msvc, or ffdshow.ax.

This is on windows 7 64 bit using the 64 bit tortoise svn.

Lam3rD
17th January 2010, 10:28
Hey, guys.

I've found some buggy things in ffdshow_sar/dar/setsar/setdar. Would you mind telling me in which file/project their code is located, so I can check it out an see what goes wrong and (hopefully) fix it. I did go through the SVN for like 20-30 minutes, with no success finding the code of these functions, so I thought I'd ask here.

CruNcher
17th January 2010, 17:02
It plays fine with rev. 3195+.
make sure you have checked H.264 acceleration under DXVA settings.

Tal

Got it finally to work nobody told me that there is a "ffdshow DXVA Video Decoder" now :P i thought it was part of the normal Decoder so i had to add it to the list :)

Though there are heavy artifacts appearing on playback with 3204 in some parts

tal.aloni
18th January 2010, 01:22
Albain and I have combined effort and managed to enable post-processing with our stand alone DXVA filter.

it's an early beta, some parts are not yet optimized,
look for the new "post processing" option.

There are 3 modes of operation (besides disabled, which is the fastest), only two are implemented ATM:
overlay - this should be used for older systems that must have subtitles
blend - same as overlay, but with alpha blending, slightly more uncacheable memory bandwidth is required. (not implemented right now)
full post processing - you can try it if you have SSE 4.1 capable CPU, and please tell me what happens (seriously, I'm not sure if it will handle 720p / 1080p)

build:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3206_20100118-DXVA-Post-Processing-Beta%201.exe

patch:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/3206-DXVA%20PostProcessing-Beta1.patch

rsd78
18th January 2010, 02:15
Albain and I have combined effort and managed to enable post-processing with our stand alone DXVA filter.

it's an early beta, some parts are not yet optimized,
look for the new "post processing" option.

There are 3 modes of operation (besides disabled, which is the fastest), only two are implemented ATM:
overlay - this should be used for older systems that must have subtitles
blend - same as overlay, but with alpha blending, slightly more uncacheable memory bandwidth is required. (not implemented right now)
full post processing - you can try it if you have SSE 4.1 capable CPU, and please tell me what happens (seriously, I'm not sure if it will handle 720p / 1080p)

build:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3206_20100118-DXVA-Post-Processing-Beta%201.exe

patch:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/3206-DXVA%20PostProcessing-Beta1.patch

Amazing work!

Any idea on the rough cpu power required for the Overlay option? Is it equivalent to when "normal" dxva is activated or does it add a bit of overhead?

albain
18th January 2010, 08:46
Thank you Tal, but you made most of the work :thanks:

tal.aloni
18th January 2010, 08:53
rsd78, Thanks,
DXVA post processing does add some overhead, but it's mostly associated with memory operations. (besides filter processing, of course).

I'm still waiting to hear reports regarding the "full post processing" with SSE 4.1.

Thanks!
Tal

STaRGaZeR
18th January 2010, 09:22
And my PC is on repairs... :mad:

Will test it as soon as I can, great stuff :eek:

CruNcher
18th January 2010, 09:25
rsd78, Thanks,
DXVA post processing does add some overhead, but it's mostly associated with memory operations. (besides filter processing, of course).

I'm still waiting to hear reports regarding the "full post processing" with SSE 4.1.

Thanks!
Tal

Nice im gonna test it on SSE2/3 Athlon 64 here and see if it's same performance then CoreAVCs CUDA (nvcuvid.dll) memory copy :)

Wow tal.aloni this build is totally buggy even without any postprocesing the artifact count tripled now :( XP 32 bit Nvidia VP2 (8800 GT) Forceware 195.94
Full Post Processing is as expecting crashing immediately here on Athlon 64 ;)

trying a non patched 3206 now
artifacts here and there but not as bad as in the patched 3206 build :) still MPC-HC internal bitstream decoder is stable though when it runs the whole system becomes very laggy (even as cpu and kernel utilization are roughly 5%) but the Video/Audio playbacks Realtime and without any artifacts or delays (VMR7)

roozhou
18th January 2010, 10:22
@albain
A feature request: Is it possible to do full post-processing after HW deinterlacing? It is easy for modern CPU to decode high bitrate AVC contents, but so far there is no real-time software deinterlacer that can compete with HW deinterlacer.

albain
18th January 2010, 10:37
Nice im gonna test it on SSE2/3 Athlon 64 here and see if it's same performance then CoreAVCs CUDA (nvcuvid.dll) memory copy :)

Wow tal.aloni this build is totally buggy even without any postprocesing the artifact count tripled now :( XP 32 bit Nvidia VP2 (8800 GT) Forceware 195.94
Full Post Processing is as expecting crashing immediately here on Athlon 64 ;)

trying a non patched 3206 now
artifacts here and there but not as bad as in the patched 3206 build :) still MPC-HC internal bitstream decoder is stable though when it runs the whole system becomes very laggy (even as cpu and kernel utilization are roughly 5%) but the Video/Audio playbacks Realtime and without any artifacts or delays (VMR7)


Artifacts are mostly due to uncompatible videos : DXVA is quite strict on which formats and encoding levels it can handle.
You should try another video that doesn't give any artifacts.

Sorry, I can't test for now (@work, old laptop)

@roozhou : normally the DXVA decoding and deinterlacing are done before postprocessing, but I am not 100% sure

VipZ
18th January 2010, 10:40
Albain and I have combined effort and managed to enable post-processing with our stand alone DXVA filter.

it's an early beta, some parts are not yet optimized,
look for the new "post processing" option.

There are 3 modes of operation (besides disabled, which is the fastest), only two are implemented ATM:
overlay - this should be used for older systems that must have subtitles
blend - same as overlay, but with alpha blending, slightly more uncacheable memory bandwidth is required. (not implemented right now)
full post processing - you can try it if you have SSE 4.1 capable CPU, and please tell me what happens (seriously, I'm not sure if it will handle 720p / 1080p)

build:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3206_20100118-DXVA-Post-Processing-Beta%201.exe

patch:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/3206-DXVA%20PostProcessing-Beta1.patch

Thanks for all this hard work :)

I have tried to test few things for you.
Overlay: Colours are fine and OSD works well.
Full Processing: Frames are extremely corrupted, OSD working fine over corrupted frame though, very unstable with most seeks crashing MPC
All: Subs never connect to ffdshow DXVA and seeking can crash MPC (Even with processing disabled)

Pic of corruption
http://img508.imageshack.us/img508/116/sampley.jpg

ACrowley
18th January 2010, 11:06
I cant see any Info about DXVA when it should be active ?
Theres only Decoder : ffmpeg-mt h264 ?
My CPU laod is still at the same Levels as witout DXVA so i assume its inactive. The Files are fully compliant.
I set DXVA for h264 and VC1 in the DXVA options

EDIT:
Ah, Sorry, DXVA Decoder is standalone
Will it be merged so that we can simply change the Decoder to DXVA in the Main Video Decoder Settings ?

tal.aloni
18th January 2010, 11:32
VipZ, Thanks,
Which CPU did you use?
(EDIT: checked your profile, the Q6600 does not have SSE 4.1)

All: Subs never connect to ffdshow DXVA
DXVA 1.0 post processing can only handle ffdshow own filters.
(theoretically DXVA 2.0 is not limited, but we're settling on the lowest common denominator)

anybody with SSE 4.1?

Jeremy Duncan
18th January 2010, 11:40
SEt's patch here: link (http://forum.doom9.org/showthread.php?t=148117) I updated it here: link (http://www.mediafire.com/?bteig4mmzkn) I talked to IanB about it here: link (http://forum.doom9.org/showthread.php?goto=newpost&t=152144). The gnu requires me to post the new code so I am posting it. The code is flawed, but it works and that's all that matters.

ffdshow I built using diff file. In windows 7 64 bit install this as administrator. (http://www.mediafire.com/?wmwzz0wzzzk)

VipZ
18th January 2010, 12:03
VipZ, Thanks,
Which CPU did you use?
(EDIT: checked your profile, the Q6600 does not have SSE 4.1)


DXVA 1.0 post processing can only handle ffdshow own filters.
(theoretically DXVA 2.0 is not limited, but we're settling on the lowest common denominator)

anybody with SSE 4.1?

No problem.
I thought it was just a matter for speed for the SSE4.1, Didn't realise it would be corrupted if no SSE4.1 instructions are available. CPU was at aprox 5-10% when trying this.
For the subtitles I was referring to ffdshow subtitles, the graph didn't connect to ffddshow for subs. Also in graphedit there is no Pin In for the splitter to connect to.

tal.aloni
18th January 2010, 12:58
VipZ,
it is a matter of speed,
SSE 4.1 boosts uncacheable memory reading speed by a factor of up to 12.
the corruption occurs when the frame has not been delivered to the renderer in time. (because of post processing).

if you have a very low resolution video, I'm pretty sure you can use full post processing on it successfully even with no SSE 4.1.

VipZ
18th January 2010, 13:29
Tal,
I tried a few lower res files, they are either almost totally just a black screen or crash MPC HC immediately and if it doesn't crash, OSD doesn't display either. All the files work fine with ffdshow dxva rev 3206 on normal compatibility mode.

Below is some info on a file I recoded to test with a very low res, it works with dxva rev 3206 but crashes immediately with the post processing beta.
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L1.2
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Muxing mode : Container profile=Unknown@1.2
Codec ID : V_MPEG4/ISO/AVC
Duration : 3mn 33s
Bit rate : 214 Kbps
Width : 320 pixels
Height : 160 pixels
Display aspect ratio : 2.000
Frame rate : 29.970 fps
Resolution : 8 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.139
Stream size : 5.44 MiB (39%)


If you want me to run any other tests let me know.

tal.aloni
18th January 2010, 13:42
ok, I'll check some low-res files when I get home,
Thanks,
Tal

HeadlessCow
18th January 2010, 13:48
Core i7 920
Radeon 4670

Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 45mn 29s
Bit rate mode : Variable
Bit rate : 2 569 Kbps
Maximum bit rate : 11.1 Mbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.116
Stream size : 836 MiB (100%)
Writing library : x264 core 68 r1183M f21daff
Encoding settings : cabac=1 / ref=4 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=9 / psy_rd=1.0:0.0 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=12 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=0 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / keyint=250 / keyint_min=25 / scenecut=40 / rc=2pass / bitrate=2569 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=50000 / vbv_bufsize=50000 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00


Overlay works fine at 24fps.
Full postprocessing drops it to ~18fps and the color is off.

Skipping around in the file at all crashes MPC-HC.

HeadlessCow
18th January 2010, 13:55
Core i7 920
Radeon 4670

Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 24mn 10s
Bit rate mode : Variable
Bit rate : 1 151 Kbps
Maximum bit rate : 3 059 Kbps
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.156
Stream size : 199 MiB (100%)
Writing library : x264 core 80 r1376M 3feaec2
Encoding settings : cabac=1 / ref=4 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=7 / psy=1 / psy_rd=0.4:0.0 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / mbaff=0 / constrained_intra=0 / bframes=5 / b_pyramid=0 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / wpredp=2 / keyint=250 / keyint_min=25 / scenecut=40 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=1151 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=17500 / vbv_bufsize=14000 / ip_ratio=1.40 / aq=1:0.60



Overlay is perfect.
Full postprocessing keeps up with the framerate but looks like this:
http://headlesscow.com/doom9/corruption.png

tal.aloni
18th January 2010, 14:05
Thanks!
I gues I should focus on "merge" for the time being,
It would be perfect for subtitles / OSD / Bitmap overlay.

I'm still wondering why we couldn't get more speed out of the core i7... the intel docs have demonstrated sufficient theoretical speed.
maybe albain could figure it out / optimize.
(perhaps it's not related to speed at at.. maybe the last example tied to colorspace issues)

Tal

albain
18th January 2010, 14:32
It may be due to the colorspace.

I can't test it right now but in my (non working) patch I added 2 conversions functions in src/imgFilters/ffImgfmt.h.

And I called csp_planar2packed(FF_CSP_NV12) which gives FF_CSP_NV12|FF_CSP_FLAGS_YUV_ADJ|FF_CSP_FLAGS_YUV_ORDER. This is (I think) the value that we should use when initializing TffPict


static __inline int csp_planar2packed(int csp)
{
switch (csp)
{
case FF_CSP_YUY2:return FF_CSP_YUY2;break;
case FF_CSP_YVYU:return FF_CSP_YVYU;break;
case FF_CSP_UYVY:return FF_CSP_UYVY;break;
case FF_CSP_VYUY:return FF_CSP_VYUY;break;
case FF_CSP_CLJR:return FF_CSP_CLJR;break;
case FF_CSP_444P:return FF_CSP_444P;break;
case FF_CSP_422P:return FF_CSP_422P;break;
case FF_CSP_411P:return FF_CSP_411P;break;
case FF_CSP_410P:return FF_CSP_410P;break;
case FF_CSP_Y800:return FF_CSP_Y800;break;
case FF_CSP_NV12:return FF_CSP_NV12|FF_CSP_FLAGS_YUV_ADJ|FF_CSP_FLAGS_YUV_ORDER;break;
case FF_CSP_PAL8:return FF_CSP_PAL8|FF_CSP_FLAGS_VFLIP;break;
}
}

static __inline int csp_packed2planar(int csp)
{
switch (csp)
{
case FF_CSP_YUY2:return FF_CSP_YUY2;break;
case FF_CSP_YVYU:return FF_CSP_YVYU;break;
case FF_CSP_UYVY:return FF_CSP_UYVY;break;
case FF_CSP_VYUY:return FF_CSP_VYUY;break;
case FF_CSP_CLJR:return FF_CSP_CLJR;break;
case FF_CSP_444P:return FF_CSP_444P;break;
case FF_CSP_422P:return FF_CSP_422P;break;
case FF_CSP_411P:return FF_CSP_411P;break;
case FF_CSP_410P:return FF_CSP_410P;break;
case FF_CSP_Y800:return FF_CSP_Y800;break;
case FF_CSP_NV12|FF_CSP_FLAGS_YUV_ADJ|FF_CSP_FLAGS_YUV_ORDER:return FF_CSP_NV12;break;
case FF_CSP_PAL8|FF_CSP_FLAGS_VFLIP:return FF_CSP_PAL8;break;
}
}

EDIT : this code has been inspired from TvideoCodecUncompressed::beginDecompress code where FFDShow receives packed colorspaces as in DXVA.
In the method the packed colorspace is obtained from the input format, including :
case CODEC_ID_NV12:csp=FF_CSP_NV12|FF_CSP_FLAGS_YUV_ADJ|FF_CSP_FLAGS_YUV_ORDER;break;

tal.aloni
18th January 2010, 15:46
I found a bug in full processing mode.

pStore += pitch - width;

(should be divided by 16)

I'll keep working on it in a few hours.

albain
18th January 2010, 18:32
Hi Tal,

back home. I am building it with the fix on 16 division

I'll post results in a moment

tal.aloni
18th January 2010, 19:03
another bug on full post processing (SSE 2 and 4.1):
some random crashes results from addresses not aligned to 16 bytes. _mm_stream_si128 will crash.

albain
18th January 2010, 19:15
Okay, the video is very slow with compression artifacts (not green lines) and I have a 50% CPU charge on my Q9450 (2.66Ghz).

In overlay mode I have 22% CPU

I saw that you made some colorspaces conversions : there is a converter (with optimized CPU instructions). I don't know if it can handle the source & dest colorspace that you want

clsid
18th January 2010, 19:15
The FFmpeg devs are working on further improving their H.264 code. Their latest patches are not compatible with the slice based multi-threaded decoding patch that we use in ffdshow's libavcodec.

Here is a patch with the latest changes:
http://pastebin.com/m11865032

Should I remove the slice based multi-threading patch? Or is there anyone willing/able to fix it?

Edit: new patch

albain
18th January 2010, 19:33
You are already using optimized code. I don't know what else could be done to improve the perfs. The big problem comes from the GPU to system memory copy


@clsid : this is okay, we are not affected by the patch in DXVA mode (if your question was addressed to us)

tal.aloni
18th January 2010, 19:35
Okay, the video is very slow with compression artifacts (not green lines) and I have a 50% CPU charge on my Q9450 (2.66Ghz).

also, there are still a few issues with the full processing methods (add support when input buffer pointer not aligned to 64, support of inputs with width which is not mod 64)

I wonder if it's worth the effort (full processing). (I'm also wondering if executing the copy in a different stage of the decoding would give us more time)

THX-UltraII
18th January 2010, 19:59
The ATI HD5670 was released a few days ago and is already in stock here in the Netherlands. Will this card give any problems with Bitstream support?

rsd78
18th January 2010, 20:18
Okay, the video is very slow with compression artifacts (not green lines) and I have a 50% CPU charge on my Q9450 (2.66Ghz).

In overlay mode I have 22% CPU

I saw that you made some colorspaces conversions : there is a converter (with optimized CPU instructions). I don't know if it can handle the source & dest colorspace that you want

My hunch is that it may not be worth while performance wise for the full performance method.

I'm a little surprised that in overlay mode it still took 22% CPU, albain. How does that compare to software decoding mode for the same file?

albain
18th January 2010, 20:48
also, there are still a few issues with the full processing methods (add support when input buffer pointer not aligned to 64, support of inputs with width which is not mod 64)

I wonder if it's worth the effort (full processing). (I'm also wondering if executing the copy in a different stage of the decoding would give us more time)

This may be multithreaded with boost as it seems that there are several frames in the buffer when we have to display them, but this is a huge amount of work

albain
18th January 2010, 21:09
With software mode only (no DXVA) I have 30-40% of CPU charge

rsd78
18th January 2010, 22:10
With software mode only (no DXVA) I have 30-40% of CPU charge

Thanks Albain. What is the rough cpu usage using ffdshow's dxva but without any overlay? Just to get an idea of the comparative differences we are talking about here. Thanks again for all you and the others have done. Between bitstreaming, and dxva + subtitles I'm in heaven :)

albain
18th January 2010, 22:48
Thanks Albain. What is the rough cpu usage using ffdshow's dxva but without any overlay? Just to get an idea of the comparative differences we are talking about here. Thanks again for all you and the others have done. Between bitstreaming, and dxva + subtitles I'm in heaven :)

7%

But this is normal as there is no one-way and return to the GPU.

Also there are in overlay mode colorspaces conversions

mark0077
18th January 2010, 23:21
Can anyone confirm de-interlacing with yadif + double frame rate, no longer doubles frame rate. I have forced de-interlacing with many types of content, even non interlaced. I cannot get ffdshow to double the frame rate anymore. It does de-interlace content fine so it is being enabled, it just leaves the frame rate as is.

Mr VacBob
19th January 2010, 07:40
The FFmpeg devs are working on further improving their H.264 code. Their latest patches are not compatible with the slice based multi-threaded decoding patch that we use in ffdshow's libavcodec.

Here is a patch with the latest changes:
http://pastebin.com/m11865032

Should I remove the slice based multi-threading patch? Or is there anyone willing/able to fix it?

Edit: new patch

If you mean frame, I'll fix it tomorrow - slice threading was broken but fixed again in ffmpeg. Splitting the decoder files completely confused git, so I'll have to do a quite large merge by hand. Meant to do it over the weekend but people kept asking me to do other stuff…

THX-UltraII
19th January 2010, 08:49
The ATI HD5670 was released a few days ago and is already in stock here in the Netherlands. Will this card give any problems with Bitstream support?

any thoughts?

Cheesegeezer
19th January 2010, 10:01
Do you mean in terms of MPC and FFDShow or via PDVD 9 Ultra.

Anyway that doesn't really matter as I can't see any reason why it would cause any problems, it uses the same audio chip across the whole HD5xxx series right upto the HD5970.

Jeremy Duncan
19th January 2010, 10:05
the ffmpegmt won't compile in the 3027 trunk build. I worked once then I couldn't get it to compile again.

XhmikosR
19th January 2010, 10:25
It compiles just fine.

tal.aloni
19th January 2010, 11:18
any thoughts?

I'm pretty confident it would support bitstream.

alexins
19th January 2010, 11:56
It compiles just fine.

I confirm!

THX-UltraII
19th January 2010, 12:16
Just picked up a 5670 and wondering what I need to make bitstreaming dd, dts, dts-ma and true-hd:

- 9.12, 9.12 hotfix or 10.1 beta?
- Realtek driver or not?
- mpc-hc: select 'MPC audio renderer as output'?
- latest ffdshow with all bitstream boxes checked? Anything else in ffdshow that needs to be selected or changed?

I use W7

Andy o
19th January 2010, 12:43
Most of us are using 9.12 hotfix w/Realtek 2.39 HDMI driver. The ATI-provided driver has the silent stream issue, and also the Realtek driver works with 32-bit output with ReClock and WASAPI exclusive, the ATI driver only does 16-bit. I don't see any upside to the ATI driver.

The Default DirectSound renderer works fine, or the ATI HDMI output also works. MPC audio renderer does exclusive mode, and last I tried (MPC-HC 1489 I believe) you had to disable audio switcher, which then doesn't let you switch audio tracks. Everything else works at default too, but just in case make sure you have mpeg PS/TS/PVA in the internal filters checked. Ffdshow needs you to select the bitstream boxes, I don't think anything else has to be done.

BTW the audio discussion specific to this was branched off to here (http://forum.doom9.org/showthread.php?t=151151).

clsid
19th January 2010, 15:47
If you mean frame, I'll fix it tomorrow - slice threading was broken but fixed again in ffmpeg. Splitting the decoder files completely confused git, so I'll have to do a quite large merge by hand. Meant to do it over the weekend but people kept asking me to do other stuff…
I didn't mean ffmpeg-mt. I was waiting for you to update your git tree before I merge that into ffdshow trunk. ;)
We use an old mt patch for slices in our normal libavcodec. That got broken due to the updates. At first it crashed, after the fix by Michael you mentioned, it no longer crashes, but there still are some decoding problems.

mark0077
19th January 2010, 19:55
To follow up on yadif not doubling frame rate. None of the ffdshow de-interlacers that can double frame rate now do. The frame rate doesn't change even though visually it does look de-interlaced, its just the same frame rate.

dann23
19th January 2010, 20:15
is it possible to add mpeg2 to dxva decoding? I have some movies in mpeg2 (in mkv container) and bitrate of 17000 kbps.

rsd78
19th January 2010, 20:31
7%

But this is normal as there is no one-way and return to the GPU.

Also there are in overlay mode colorspaces conversions

Thanks again Albain. Will the current implementation of Overlay work automatically with Media Control? Or do you need to modify something (either ffdshow or Media Control)?

Any chance someone will provide some benchmarks in comparison to existing solutions (i.e. software decoding, dxva, CUDA) for various files/systems? I'm just curious as to the results. I'm a little surprised the DXVA with Overlay used 3x as much CPU as regular DXVA but it's hard to judge without that overall context and baseline measurements.

Gleb Egorych
19th January 2010, 21:36
Just for info: new ForceWare 195.55 broke NV12 support for some files. Output using NV12 is wrong with different codecs including ffdshow.
Fixed in 196.21 WHQL.

JarrettH
19th January 2010, 21:54
is it possible to add mpeg2 to dxva decoding? I have some movies in mpeg2 (in mkv container) and bitrate of 17000 kbps.

exactly what i was asking before too! :devil:

mpc-hc should be just as nice for playing back dvds. the internal deinterlacer is not very good

cca
19th January 2010, 22:18
Revision 3207 introduced a bug on the DVD navigation, menu options no longer highlight on mouse over. Revision 3204 works fine.

Nyquist
19th January 2010, 22:19
exactly what i was asking before too! :devil:

mpc-hc should be just as nice for playing back dvds. the internal deinterlacer is not very good

Set the output to NV12 and interlaced to auto and let libavcodec or libmpeg2 doing the decoding.

tal.aloni
19th January 2010, 23:01
Beta 2 improves overlay mode visibility, and also adds Blend mode,
I'm not really sure if blend mode is very useful, because those read operations are very resource-hungry.
[full-processing-mode seems less and less practical, it's not fully implemented in this beta (and the previous one)]

build
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3208_20100119-DXVA-Post-Processing-Beta2.exe

patches
http://iknowu.net/files/public/ffdshow/DXVAPostProc/3208-DXVA-Post-Processing-Beta2.patch

http://iknowu.net/files/public/ffdshow/DXVAPostProc/3208-RefractorProcessDecodedSample.patch

Regards,
Tal

albain
19th January 2010, 23:19
Thanks again Albain. Will the current implementation of Overlay work automatically with Media Control? Or do you need to modify something (either ffdshow or Media Control)?

Any chance someone will provide some benchmarks in comparison to existing solutions (i.e. software decoding, dxva, CUDA) for various files/systems? I'm just curious as to the results. I'm a little surprised the DXVA with Overlay used 3x as much CPU as regular DXVA but it's hard to judge without that overall context and baseline measurements.

It should work but you have to replicate the same settings in FFDShow DXVA configuration (in the remote & keyboard settings).

For now we are stuck on a serious problem : the copy from the GPU to system memory take too much time (80ms for one 720p frame), more time than it should according to intel's article.
Multithreading the copy did worse (120ms)

Even if we do the copies in parallel, the copy time will most likely exceed the playback time. Anyway I will give it a shot.
So for now full postprocessing with DXVA decoding consumes more than full software decoding and processing.

As Tal pointed out, there is something that we should have missed

I don't understand why it would take so much time

mark0077
20th January 2010, 00:53
To follow up on yadif not doubling frame rate. None of the ffdshow de-interlacers that can double frame rate now do. The frame rate doesn't change even though visually it does look de-interlaced, its just the same frame rate.

I have narrowed down the problem being introduced between build 3205 and 3207, as 3204 and before performs double frame rate de-interlacing perfectly.

Does anyone know somewhere I can get build 3205 and 3206, and how to contact either tal_aloni or drevil_xxl, as they are the people who made changes in these builds.

Revision 3207 - Directory Listing
Modified Mon Jan 18 14:41:19 2010 UTC (33 hours ago) by drevil_xxl
minor fix

Revision 3206 - Directory Listing
Modified Sun Jan 17 22:16:10 2010 UTC (2 days, 1 hour ago) by tal_aloni
bugfix related to rev. 3105

Revision 3205 - Directory Listing
Modified Sun Jan 17 20:17:30 2010 UTC (2 days, 3 hours ago) by tal_aloni
Internal: separation between video sample processing and sample delivery. (it's now possible to process video sample without delivering it)

I suspect 3205 or 3206 work by tal_aloni on deinterlacing related files will be the cause of the bug.

XhmikosR
20th January 2010, 02:00
Check the link in my signature for r3206. r3205 caused a blank video screen for me so I didn't uploaded. (I actually reported this to tal.aloni via IRC and he committed r3206 which fixed the problem).

HeadlessCow
20th January 2010, 06:55
For both of my test samples (see previous posts), overlay and blend worked perfectly with the beta2 build.

CPU usage on the 720p video was 1% with post-processing disabled, 4% with overlay, 6% with blend and 12.5% (1 fully loaded core) with full-postprocessing.

For the 720p sample, full post-processing caused color corruption and the FPS dropped down to 18fps. After a few seconds, visual corruption also occurred (image turned blocky and the blocks kinda randomly moved around). For the other sample, full post-processing took 8% of the CPU and ran at full framerate, but still had the same green lines as before.

For a 1080p sample, I resized the source of the smaller vid and encoded it to a resolution of 1920x1080 with similar settings as the 720p vid. Playback used 2% CPU. Enabling overlay or blend increased that to 8%.

Also of note, the ATI 4670 cannot handle 5 ref frames in DXVA mode with 1080p video.

tal.aloni
20th January 2010, 07:39
I suspect 3205 or 3206 work by tal_aloni on deinterlacing related files will be the cause of the bug.

Thanks for letting me know,
Edit:
I'll fix that today.

Tal

HeadlessCow
20th January 2010, 08:04
When the MPC DXVA filter detects subtitles (or the presence of DirectVobSub, I dunno how it really works) it doesn't load, allowing the subs to be handled by DirectVobSub. I think that the ffdshow DXVA filter should do the same thing if internal subtitle handling is turned off. As it is, there is just a NullTextRenderer inserted into the graph and the subtitles go nowhere :'(

Actually, I can't get ffdshow (direct or not) to load my subtitles embedded in an mkv file, so maybe I'm just doing something wrong here :-D

CiNcH
20th January 2010, 08:52
Does anybody know where one can quickly get a MKV sample with H.264 4.1 video and subtitles in a format that ffdshow can read (so no PGS please)?

tal.aloni
20th January 2010, 09:51
HeadlessCow,
I've been meaning to fix that in future betas:
currently, the DXVA decoder does not have input pin for subtitles.
also, when DXVA is loaded, DirectVobSub cannot operate. (it cannot post-process DXVA, only internal ffdshow filters can)

also, thanks for the cpu utilization tests.

p.s.
I'm debating whether to fix those full-post-processing bugs (the colorspace issue is one of them),
or just remove this mode.
as albain noted, our performance tests shows that we're only achieving 2% of the theoretical bandwidth,
but I can't figure out anything wrong we're doing.

HeadlessCow
20th January 2010, 14:21
Yeah, I know you can't have DXVA and DirectVobSub, but the way I've been running is to have the MPC-HC DXVA filter set up to use DXVA with fallback to ffmpeg. When a file has no subtitles, it'll decode using DXVA, when there are subs present it uses the ffmpeg decoder and DirectVobSub is able to do its job. It'd be nice if the ffdshow DXVA decoder did the same thing.

rsd78
20th January 2010, 15:26
HeadlessCow,
I've been meaning to fix that in future betas:
currently, the DXVA decoder does not have input pin for subtitles.
also, when DXVA is loaded, DirectVobSub cannot operate. (it cannot post-process DXVA, only internal ffdshow filters can)

also, thanks for the cpu utilization tests.

p.s.
I'm debating whether to fix those full-post-processing bugs (the colorspace issue is one of them),
or just remove this mode.
as albain noted, our performance tests shows that we're only achieving 2% of the theoretical bandwidth,
but I can't figure out anything wrong we're doing.

Any chance you guys could contact the author of the intel article? They list the name but not an email. Just a guess but maybe he is a fellow enthusiast as he references mpc-hc in it :).

STaRGaZeR
20th January 2010, 16:38
Any chance you guys could contact the author of the intel article? They list the name but not an email. Just a guess but maybe he is a fellow enthusiast as he references mpc-hc in it :).

I'd do that. DXVA + full postprocessing is worth the effort IMO.

MatMaul
20th January 2010, 20:01
@albain :
http://git.ffmpeg.org/?p=ffmpeg;a=commit;h=6e3d7762f1d54dcaa783b67e370fb77ad73c8e79
:)

dann23
20th January 2010, 20:14
I have a problem with some movies when using dxva.some of them are not working with matroska splitter from mpchc website. the movie seems to play but the image is black. Should I post a sample?
And two suggestion.
1. please add support for MPEG2 in dxva.
2. this one is more complicated. don't know if it's possible. What I like about DXVA is that a cheap graphic card can decode the movie without much trouble. For me it;s about power consumption and silence. My card is a radeon 3850 with passive cooling and a 125w athlon x2 proccesor. You realize that using the CPU to watch movies is very loud. Not to mentions that the cpu is most of the time at 100% but the vga card is at 4-6% doing the same thing. So my suggestions is if it is possbile to make subtitles go directly to dxva render (not using overlay). Using no post processing takes 6-10% from cpu, but when using overlay it goes to 30-40%. Hope it is possible and somebody is willing to implement this for people like me.
And thank you for your hard work.

Nyquist
20th January 2010, 21:28
Beta 2 improves overlay mode visibility, and also adds Blend mode,
I'm not really sure if blend mode is very useful, because those read operations are very resource-hungry.
[full-processing-mode seems less and less practical, it's not fully implemented in this beta (and the previous one)]

While in Beta 1 the subs were working, in Beta 2 they don't.

On a Q9300 I get about 20% CPU load with Overlay, 22% with Blend and only about 10% using ffmpeg-mt.

tal.aloni
20th January 2010, 21:31
mark0077,
the doubling frames bug is fixed with rev. 3211,
I updated 4 filters: DGBob, KernelBob, Yadif, Framerate Doubler.
if there are any other filters that adds frames, let me know.

dann23,
are you referring to my beta2?
please clarify what exactly are you saying / asking.

regarding overlay / blend mode in beta 2:
I have to confess that there is some room for optimizations:

1. osd / subtitles are rendered 3 times for each frames instead of 1,
this is necessary to create opacity map without modifying or rewriting the osd / subtitles filter.

2. Right now the CPU is likely caching all overlay / blend reads and writes, this can be optimized more easily, but I don't have the time right now.

keep in mind that those optimizations are not very significant for a modern CPU (1-2%).

much more important IMO is to enable the text input pin for the DXVA decoder.

Tal

noee
20th January 2010, 22:16
if there are any other filters that adds frames, let me know.

I use avisynth to double framerate with the following script:

setmtmode(2)
Last=ffdshow_source()
setmemorymax(550)
setmtmode(2)
SeeSaw(sstr=1.45)
super = MSuper(pel=2,hpad=4,vpad=4)
backward_vec = MAnalyse(super,chroma=false, blksize=16, isb = true, search=5, searchparam=1)
forward_vec = MAnalyse(super, chroma=false, blksize=16)
MBlockFps(super, backward_vec, forward_vec, num=FramerateNumerator(last)*2, den=FramerateDenominator(last)*1, mode=1)
distributor()


This was broken after 3204 like the others. Might be worth a look too?

therealjoeblow
20th January 2010, 22:31
Also of note, the ATI 4670 cannot handle 5 ref frames in DXVA mode with 1080p video.

That's correct, ATI strictly enforces the H.264 profile/level High@L4.1 for HD content as developed/approved by the associations responsible for the HD DVD and BluRay Disc standards. Nvidia doesn't so they can generally decode L5.1@1080p video with DXVA.

If you are interested in all of the compliant combinations of resolution, ref. frames, b frames and b-pyramids, you can look at this page on AVS Forum:

http://www.avsforum.com/avs-vb/showthread.php?t=972503

Cheers,
The REAL Joe

albain
20th January 2010, 23:17
@albain :
http://git.ffmpeg.org/?p=ffmpeg;a=commit;h=6e3d7762f1d54dcaa783b67e370fb77ad73c8e79
:)

Great, we will make the merge once we will have a stable version

tal.aloni
20th January 2010, 23:29
While in Beta 1 the subs were working, in Beta 2 they don't.

I've PMed Nyquist, the issue is solved.

Mr VacBob
21st January 2010, 00:31
I've changed the delay reporting API in ffmpeg-mt. Instead of the delay being has_b_frames + thread_count - 1, it's just has_b_frames now, matching mainline ffmpeg. I don't know if overestimated delay will cause a problem for you or not anyway.

tal.aloni
21st January 2010, 09:30
regarding VC-1 DXVA:
the "bug" is related to B frame ordering (bReorderBFrame variable),
MPC-HC filter behaves differently for each splitter,

we have started to imitate this behavior with rev. 3212
I would still like to implement a better solution, but it would require modifying some of the splitters involved.

CiNcH
21st January 2010, 10:58
Even though nobody here wants to communicate with me I want to point you to where Casimir once implemented Access Unit parsing for H.264 and VC-1 but did not release it, see MPCVideoDecFilter.cpp >= line 1524 (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/trunk/src/filters/transform/mpcvideodec/MPCVideoDecFilter.cpp?revision=1540&view=markup).

cca
21st January 2010, 13:55
@tal.aloni

rev 3205 broke DVD menu highlighting, latest rev. is still broken in that regard.

hoborg
21st January 2010, 14:09
@tal.aloni

rev 3205 broke DVD menu highlighting, latest rev. is still broken in that regard.

No problem here (tested on XP and MPC-HC as player/all internal filters disabled)

cca
21st January 2010, 14:30
No problem here (tested on XP and MPC-HC as player/all internal filters disabled)

Not working here though, MPC-HC using libmpeg2 via ffdshow, EVR custom as renderer, rev. 3204 working just fine, everything above it doesn't highlight the menus while I move the mouse over them.

hoborg
21st January 2010, 14:45
BTW, i am using FFDshow Crop & Zoom filter to remove black borders from analog TV signal (MPEG-2) i have, but i noticed that will broke DVD navigation (bad position of buttons)
http://hobring.esero.net/saf/ffdshow_zoom+dvd.jpg

Is there a way how to fix it?
I was thinking about creating 2 FFDShow profiles for it, but i have no idea how to define it to be able to split MPEG-2 from TV and MPEG-2 from DVD :(

jos99
21st January 2010, 15:11
Casimir once implemented Access Unit parsing for H.264 and VC-1 but did not release it, see MPCVideoDecFilter.cpp >= line 1524 (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/trunk/src/filters/transform/mpcvideodec/MPCVideoDecFilter.cpp?revision=1540&view=markup).
Interesting, would this allow live HDTV if similar code was implemented in the ffdshow DXVA decoder?

CiNcH
21st January 2010, 15:32
Interesting, would this allow live HDTV if similar code was implemented in the ffdshow DXVA decoder?
Kind of.. It would allow ffdshow to work together with splitter/demuxer/source filters that deliver constant size chunks of ES data and do not parse down to VC-1/H.264 bitstream level (so not exactly one Access Unit per Media-Sample is delivered). Examples of splitters that don't do it are MS MPEG-2 Demultiplexer (which is most likely used in WMC?), Elecard Demultiplexer, DVBViewer DVBSource filter,..

hoborg
21st January 2010, 15:39
Here is h.264 sample (http://hobring.ic.cz/HDV_0091.zip) from Samsung HD camcorder that didnt work correctly in FFDshow DXVA decoder - there is glitch every 2-3s.

MPC video decoder have same problem, Cyberlink and MS DXVA decoders work fine.

roozhou
21st January 2010, 16:38
mark0077,
the doubling frames bug is fixed with rev. 3211,
I updated 4 filters: DGBob, KernelBob, Yadif, Framerate Doubler.
if there are any other filters that adds frames, let me know.


DScaler?

And will you take a look at this problem (http://forum.doom9.org/showthread.php?p=1254999#post1254999)?

deets
21st January 2010, 16:38
Kind of.. It would allow ffdshow to work together with splitter/demuxer/source filters that deliver constant size chunks of ES data and do not parse down to VC-1/H.264 bitstream level (so not exactly one Access Unit per Media-Sample is delivered). Examples of splitters that don't do it are MS MPEG-2 Demultiplexer (which is most likely used in WMC?), Elecard Demultiplexer, DVBViewer DVBSource filter,..

fingers crossed someone is listening to this :)

tal.aloni
21st January 2010, 18:55
Some good news regarding DXVA:
after some research, I've discovered that there is support in DXVA 1.0 (and almost certainly 2.0) API for alpha blending in hardware.
it should be faster than current blending implementation, and I'll check it out when I'll have the time.

as a side note, I'm sorry for the latest regressions,
we had to refactor and decouple the image processing chain from the output pin, to allow more versatile usage (DXVA post processing). IMO, it also makes the code cleaner and easier to understand.

p.s.
I'll commit the avisynth related fix later, I'm waiting a confirm regarding the DVD menu related bug.

Tal

hoborg
21st January 2010, 19:12
DVD menu related bug - just tested DVD navigation with 3212 buid on Win7 + MPC-HC player (EVR) and it is working fine.

clsid
21st January 2010, 19:12
Great work Tal ;)

mark0077
21st January 2010, 19:36
Thanks for the fix tal aloni, but I have some problems. If I try to enable de-interlacing with yadif and enable double frame rate, hundreds / thousands of frames get dropped (reported in mpc-hc) for some content, like some mpeg2 dvds. Its frame rate stays at the non-double rated, and it seems to drop every second frame.

Its like ffdshow no longer sends it the correct framerate as output perhaps, and mpc-hc drops every other frame?

Sometimes it only happens when I enable "Process frames flagged as progressive".

leeperry
21st January 2010, 19:40
I'll commit the avisynth related fix later
are you referring to this? http://forum.doom9.org/showpost.php?p=1364936&postcount=10337

it didn't work well at all w/ Avisynth 2.57 MT for me....it required plugins to be recompiled w/ 2.58 and some source codes are not available to do so.

I understand Jeremy wants this to happen so badly, but Leak didn't find anything wrong w/ the current code I think...and when I tried sET's fix on Avisynth 2.57 MT it was giving all kind of strange problems(half-speed and so)...hope you won't mind getting Leak's version of the story before adding it to the SVN http://forum-images.hardware.fr/images/perso/sniperr.gif

cca
21st January 2010, 19:56
DVD menu related bug - just tested DVD navigation with 3212 buid on Win7 + MPC-HC player (EVR) and it is working fine.

Did some more tests, it refuses to work here, tried all MPC-HC renderers, zero difference. Versions earlier then 3205 consistently work right.

@hoborg

even it works for you it doesn't mean there isn't a regression somewhere, not all configs are the same, same goes for our DVDs.

EDIT: DVD menus appear to work when the DVD has moving backgrounds on the menu. Doesn't work when the menu is completely static though.

tetsuo55
21st January 2010, 19:58
regarding VC-1 DXVA:


we have started to imitate this behavior with rev. 3212
I would still like to implement a better solution, but it would require modifying some of the splitters involved. please go for the most accurate solution.
haali is listening too, chances are good he will join the "correct" solution.
You could open a thread here (sign in with your sourceforge account) http://sourceforge.net/apps/phpbb/mpc-hc/viewforum.php?f=2

I suggested opening a thread there with your ideas and then posting the link here and pm-ing the devs involved (casimir666, haali, ar-jar, jonasno, aleksoid... and albain,(and anyone i missed))

dann23
21st January 2010, 19:59
mark0077,
the doubling frames bug is fixed with rev. 3211,
I updated 4 filters: DGBob, KernelBob, Yadif, Framerate Doubler.
if there are any other filters that adds frames, let me know.

dann23,
are you referring to my beta2?
please clarify what exactly are you saying / asking.

regarding overlay / blend mode in beta 2:
I have to confess that there is some room for optimizations:

1. osd / subtitles are rendered 3 times for each frames instead of 1,
this is necessary to create opacity map without modifying or rewriting the osd / subtitles filter.

2. Right now the CPU is likely caching all overlay / blend reads and writes, this can be optimized more easily, but I don't have the time right now.

keep in mind that those optimizations are not very significant for a modern CPU (1-2%).

much more important IMO is to enable the text input pin for the DXVA decoder.

Tal

All I want to say is to make it more efficient. For example the same movie in mpc-hc takes approximately 10% from cpu (with subtitles) but using ffdshow with dxva it takes 30-40% using overlay. And about the problem with some movies I know they worked with beta2 from albain. I'll wait for next beta to see what happens and post a sample if necessary. Can you tell me what splitter are you using? Maybe this is the problem with some of the movies.

hoborg
21st January 2010, 20:05
EDIT: DVD menus appear to work when the DVD has moving backgrounds on the menu. Doesn't work when the menu is completely static though.

You are right, my are moving.

tal.aloni
21st January 2010, 21:33
Thanks for pinpointing the problem, I was able to nail it down!

a fix was commited in rev. 3214, hopefully that's the last one.

Tal

mark0077
21st January 2010, 21:39
:D Sweet thanks.

EDIT: Sorry thought you were replying to my de-interlacing , dropped frames problem.

leeperry
21st January 2010, 21:54
Thanks for pinpointing the problem, I was able to nail it down!

a fix was commited in rev. 3214, hopefully that's the last one.
any chance for a reply please concerning the avisynth "fix"? Leak didn't see anything to fix last time he checked I think if we're talking about the same thing :o

:thanks:

tal.aloni
21st January 2010, 22:24
mark0077
thanks for letting me know!
let me know if it's fixed with rev. 3215

dann23
we still did not implement subtitle input pin, so only external subtitles are working now (movie.srt).
we will implement the subtitle input pin in the future.

tetsuo55
I've spoken with casimir,
in m2ts: MPC assign the PTS timestamp to each frame,
haali does not.
in mkv: we're not even sure that there is a container timestamp, so neither you or haali assign the chronological value.

the only thing we can do is to ask haali to assign the PTS timestamp to vc-1 in m2ts like you do, but we would still need some check based on the container, so not much will change.

Tal

Jeremy Duncan
21st January 2010, 22:31
any chance for a reply please concerning the avisynth "fix"? Leak didn't see anything to fix last time he checked I think if we're talking about the same thing :o

:thanks:

My diff file. I made a ffdshow installer and ffdshow avisynth and resizing works with this diff file. (http://www.mediafire.com/?dnljddfjzlm)

IanB said to ignore this part of the diff file though: src/imgFilters/avisynth/TimgFilterAvisynth.h @@ -99,7 +99,12 @@, but it works for me.

leeperry
21st January 2010, 22:44
ok ok...well, please allow me to come whine if the patch is no workee...and I might very well not be the only one if it's as broken as the previous version I tried :o

and you guys hoping Haali to help you w/ anything...

tetsuo55
21st January 2010, 23:04
tetsuo55
I've spoken with casimir,
in m2ts: MPC assign the PTS timestamp to each frame,
haali does not.
in mkv: we're not even sure that there is a container timestamp, so neither you or haali assign the chronological value.

the only thing we can do is to ask haali to assign the PTS timestamp to vc-1 in m2ts like you do, but we would still need some check based on the container, so not much will change.

Talok, but that still doesnt adres the problem of mixed up frames.

tal.aloni
21st January 2010, 23:10
leeperry,
I was referring to a regression with rev. 3205 that I fixed regarding avisynth not delivering additional frames being created.

Jeremy Duncan refers to another issue regarding x64 compatibility (if I understood correctly).

Jeremy Duncan
21st January 2010, 23:14
leeperry,
I was referring to a regression with rev. 3205 that I fixed regarding avisynth not delivering additional frames being created.

Jeremy Duncan refers to another issue regarding x64 compatibility (if I understood correctly).

No no, it's for accurate frame seeking: Patch fixes incorrect timestamps, redice crashes on stop, reduce memory usage a bit.
The x64 part enables the patch to work in windows 7 64 bit.

Maybe include the diff file patch in the svn and LeePerry can try it out? :)

With these newer ffdshow trunk builds you also need to do this to get the benefit of the patch though:
Decoder options tab
Uncheck "Detect soft telecine and average frame durations"

tal.aloni
21st January 2010, 23:23
Maybe include the diff file patch in the svn and LeePerry can try it out? :)

I suggest you update the patch to the latest revision,
post a beta build so people can test,
also, if the patch include multiple functions (like x64 support), it's best to test and commit them one by one.

leeperry
22nd January 2010, 01:01
leeperry,
I was referring to a regression with rev. 3205 that I fixed regarding avisynth not delivering additional frames being created.

Jeremy Duncan refers to another issue regarding x64 compatibility (if I understood correctly).
ok, thanks for the clarification!

currently w/ CoreAVC CUDA 2.0/ffdshow/avisynth, it currently jumps two frames ahead when I do frame step by step in KMP(it used to be only one frame) the first time(the following frames are OK)...but I didn't try to find the culprit, as it's really no biggy for me.
I suggest you update the patch to the latest revision,
post a beta build so people can test,
also, if the patch include multiple functions (like x64 support), it's best to test and commit them one by one.
please noone take it bad, but Jeremy's bruteforce approach to compiling software scares me a bit :o

deets
22nd January 2010, 15:06
I hope i haven't missed a post, tried to keep up :)

would any of the devs mind commenting either way if they have any plans to make DXVA compatible with live streams. Cinch had some stuff in a post about it but i havent (unless i missed it) seen any reply.

if you don't have any plans to address this, we can let it go :)

appreciate your work and im not pushing it, just wondering if its been noted or not

THX-UltraII
22nd January 2010, 15:58
beta ffdshow: link (http://www.mediafire.com/?mmdmjm2klwm)

Is there also a x64 version link?

tal.aloni
22nd January 2010, 23:14
some updates:
1. I can't get DXVA hardware alpha blending to work yet, I'll keep trying. (getting E_FAIL from the driver)

2. software overlay mode: it seems that most of the cpu consumption is dedicated to the high quality drawing method I implemented.
I'll try to write a faster method for overlay, I might leave the current method as "Overlay - High Quality".

p.s.
since hardware alpha blending requires conversion to AYUV 32, (and calculating an alpha mask), it would be a safe to assume software overlay would (after optimizations) be faster then hardware alpha blending.

HeadlessCow
22nd January 2010, 23:22
Is it something that's only supported on certain cards?

tal.aloni
23rd January 2010, 00:30
I don't really know, it's part of the specs, so it should be supported on every modern DXVA 1.0 device.

I have an nvidia GPU as well, so I can test it as well later.

DigitalDeviant
23rd January 2010, 03:30
Starting sometime after rev. 3204, IVTC via avisynth make the video stutter extremely bad. I've tried severl versions through to the latest, 3217, and the last working version seems to be 3204.

CruNcher
23rd January 2010, 08:20
there are still artifacts tal.aloni (Nvidia) compared to MPC-HCs decoder :(
also if i try to close the video now libavcodec.dll crashes im using xhmikosr current 3219 build :(

tal.aloni
23rd January 2010, 11:00
there are still artifacts tal.aloni (Nvidia) compared to MPC-HCs decoder :(
you mean when seeking, right?


also if i try to close the video now libavcodec.dll crashes im using xhmikosr current 3219 build :(
since which revision? this might be related to ffmpeg. (please provide more details, I've tested this build and I don't any any issue)

XhmikosR
23rd January 2010, 14:05
Everything seems to work as usual for me too. I've also updated my GCC to v4.4.3.

dann23
23rd January 2010, 14:20
I made some test using dxva and haali splitter, divx mkv splitter and matroska splitter from mpc-hc website.
With haali I can play all the movies. No artifacts.
With divx all the movies play but many artifacts.
And with matroska splitter some of the movies don't play. Just black screen. And some artifacts. Also I found that if using matroska splitter and the movie has mpeg2 video in it, it won't play.
The test was on windows xp with ati 3850. Also I want to mention that using beta2 from albain has no problem with matroska splitter. The problem appeared after that build.

Edit.
Some artifacts also appear with haali but very rarely.

CruNcher
23rd January 2010, 18:02
you mean when seeking, right?
Nope after a while of playback with this 60 FPS stream most other streams are ok no problem with MPC-HC DXVA and this 60 fps stream you can find it some pages back WipeOut 1080p 60 FPS PS3 Main L 4.1 Gameplay trailer


since which revision? this might be related to ffmpeg. (please provide more details, I've tested this build and I don't any any issue)

i didn't tried different revisons yet one moment ;) i find it out but it was happening very recently maybe the 2 last builds i give you the exact build when it appeared mom :)

the crash problem appeared between 3212-3217

3212 = ok (file close in MPC-HC)
3217 = libvcodec.dll crash on exit (file close in MPC-HC)
3219 = libavcodec.dll crash on exit (file close in MPC-HC)

sorry i don't have any other builds to test

tal.aloni
23rd January 2010, 18:51
sorry i don't have any other builds to test

http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1

old builds > generic > page 2

let's narrow it down to a build, ok?

clsid
23rd January 2010, 19:28
I had a similar crash on exit problem yesterday when updating the ffmpeg-mt code. After a lot of trial and error I discovered it was related to some members of the struct H264Context (in h264.h), namely list_count/list_counts/ref_count. Just their order mattered for whether it crashed or not. So there may be some kind of alignment issue.

tal.aloni
23rd January 2010, 22:08
Hey Guys,
It turns out I didn't take into account situations where frames are removed from the source (courtesy of avisynth filter),
to support this, I made another slight change to ffdshow: frames won't be delivered if the image filter does not eventually return S_OK.

however, for various reasons, some filters might not return the proper value.
I'm posting a beta so we could identify the problematic filters / settings before I commit, if you're getting black screens / missing frames, please let me know which filter / config is the cause.

Thanks!
Tal

build:
http://iknowu.net/files/public/ffdshow/Decoupling/ffdshow_rev3220_20100123-HonorProcessSampleReturnValue.exe

patch:
http://iknowu.net/files/public/ffdshow/Decoupling/3220-HonorProcessSampleReturnValue.patch

Edit:
found first problem: DGBob.

BatKnight
23rd January 2010, 23:10
I came across with this same situation and instead of copying other's words, I prefer to quote someone that already tested and provided the results:


- Build number: 20100112 (updated to the last one just to be sure. Previously I used 20091209 and before that another older one that I forgot, but I confirm the behaviour is identical).
- Sources: MP2, MP3, AC3, DTS, some TrueHD test files (marketing material from Dolby), 24-bit FLAC (I normally use madFlac but forced ffdshow for this test) and a 24-bit LPCM track (Blu-ray).
- Config: I use ffdshow only for decoding. All processing plugins are unchecked.
For the test I only change the various int and float output formats in the "Output" section. I tried changing the allowed sample formats in the "Processing" section and it didn't change the results, so leeperry is right: this only affects processing.

Results:

1. everything checked:
- AC3 and DTS: libavcodec 16 int, liba52/libdts 32 float
Everything fine here: the ones that can output float do and libavcodec that is limited to 16 int outputs 16 int.
- MP2 and MP3: libavcodec and mp3lib 16 int, libmad 32 int
libmad doesn't want to output float. I think I've read here that 32 int has higher precision than 32 float, however the decoder surely must compute float values as the algorithm output even if it wants to output int afterwards, right? So libmad shouldn't gain anything outputting 32 int here, right? (I presume it doesn't work in 64 float internally). Weird.
EDIT: I've found on the official website that MAD natively outputs 24 int, so it falls under the same case as TrueHD, FLAC and LPCM: it outputs 24 int and then ffdshow does something with it, now is it padding or converting?
- TrueHD: 32 int. Doesn't make sense as it's not a lossy codec and the source is 24-bit at best so it doesn't gain anything by outputting at higher int precision, on the contrary.
- 24-bit LPCM: 32 int. Makes even less sense than TrueHD as it doesn't have anything to decode, so it's just a useless conversion by ffdshow here.

2. everything checked except 32 int:
TrueHD, LPCM, FLAC and madlib now output 16 int, even though 24 int and 32 float (which should in theory be the best choice for for madlib) (EDIT: MAD actually outputs 24 int) is enabled. Go figure...

3. only 16 int and 24 int checked:
This is to test liba52 and libdts when they can't output float, and they prefer to output 16 int rather than 24 int.

Now I have different possible conclusions:

1. there is absolutely no logic in ffddshow decoders. Some inside libavcodec (AC3 and DTS) are able to output 16 int even if something higher is checked, others always output the best (liba52 and libdts), and others always output the highest precision available even if the source is lossless and of lower precision. And none will output 24 int except when it's the only option available, even the lossy codecs, which could in theory gain something by outputting at 24 int as it would mean smaller rounding errors than 16 int.

2. ffdshow does a transparent internal conversion from what the decoder really outputs to the output format it considers best, without informing the user.
This would explain why everything is output at 32 int, but then wouldn't explain why ffdshow considers 16 int to be better than 24.
And obviously, some decoders (e.g. AC3 and DTS in libavcodec) would be able to bypass this conversion.

3. ffdshow pads 24 int to 32 int.

Now my part:
Would it be possible for ffdshow to output the same format as the input in lossless codecs and try to ouput 32bit float (and fallback to 32bit int or 24bit int, etc) in lossy codecs?
Because as you see in el Filou's point 1 and 2, ffdshow isn't making the most correct choices.

Bat

Mr VacBob
23rd January 2010, 23:34
I had a similar crash on exit problem yesterday when updating the ffmpeg-mt code. After a lot of trial and error I discovered it was related to some members of the struct H264Context (in h264.h), namely list_count/list_counts/ref_count. Just their order mattered for whether it crashed or not. So there may be some kind of alignment issue.

It needs to be list_counts, ref_counts, list_count, like it already is, or mt will crash much earlier than when exiting. Or is this something else?

clsid
23rd January 2010, 23:51
Yes, it works OK with the order that is in your git tree. That order is also used in ffdshow's copy of ffmpeg-mt. I initially used the order that is used in regular ffmpeg. That was when I got the crashes.

Is my assumption correct that this is an alignment issue? Or this there some other hidden bug?

Mr VacBob
23rd January 2010, 23:56
It's because mt does a memcpy() of some fields between threads, and that one was added in the middle of one of them upstream. But it's not appropriate to copy that one (it's a pointer to a per-frame table) so I moved it up in the context rather than splitting the memcpy up.

CruNcher
24th January 2010, 07:01
http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1

old builds > generic > page 2

let's narrow it down to a build, ok?

the crash started with 3217

yep 3223 still crashing

you do File->Close in MPC-HC and bye bye libavcodec.dll crashes it's not bad as the playback is over but it didn't happen before 3217

bigger problem though is that this 60 FPS sample is artifacting with ffdshow DXVA when with MPC-HC DXVA its fine :(

tal.aloni
24th January 2010, 08:05
CruNcher, I'll review the modifications again.

also, there is again problem with AviSynth filter, I'm working on it.

Tal

Jeremy Duncan
24th January 2010, 09:47
I suggest you update the patch to the latest revision,
post a beta build so people can test,
also, if the patch include multiple functions (like x64 support), it's best to test and commit them one by one.

3223 build and patch (http://www.mediafire.com/?n4jjdwzwylz)

With these newer ffdshow trunk builds you also need to do this to get the benefit of the patch though. At least for mvtools2 frame doubler:
Decoder options tab
Uncheck "Detect soft telecine and average frame durations"
So if somebody says the patch doesn't fix their problem I would ask them if this is unchecked or not. It may be it only needs to be unchecked for mvtools2 frame doubler, but I don't check every plugin and option so I don't know.

I updated the ffdshow wiki: link (http://ffdshow-tryout.sourceforge.net/wiki/devel:building)

albain
24th January 2010, 19:44
I came across with this same situation and instead of copying other's words, I prefer to quote someone that already tested and provided the results:



Now my part:
Would it be possible for ffdshow to output the same format as the input in lossless codecs and try to ouput 32bit float (and fallback to 32bit int or 24bit int, etc) in lossy codecs?
Because as you see in el Filou's point 1 and 2, ffdshow isn't making the most correct choices.

Bat

It depends also on codecs capabilities : for example libavcodec AC3 decoder is able to output 16 bits only, so you'll get 16 bits whatever you check. Same thing for DTS.
This is the reason why liba52 and libdts are better for AC3/DTS decoding and this is indeed the reason why we keep them inside FFDShow

About libavcodec TrueHD, I think that it is able to output 32 bits.

About FFDShow output logic, I am not very familiar with it but I know that for example if you let 16 bits check, you will get 16 bits only.
Try to test with 24 or 32 bits only

Also there is the windows mixer that should be set to output this sample format.

Reimar
24th January 2010, 20:08
Try to test with 24 or 32 bits only


libavcodec won't do 24 bit since that is a pain to work with - alignment issues, can't easily use SIMD instructions on it etc.
Ideally the decoders should set AVCodecContext.bits_per_raw_sample to indicate how many bits actually are relevant.
The AC3 decoder in libavcodec should be "trivial" to change to output either float or 32 bit integer (basically just replace the float_to_int16_interleave at the end of ac3_decode_frame). I'm not sure there's actually a point in doing so though.

jruggle
24th January 2010, 20:59
libavcodec won't do 24 bit since that is a pain to work with - alignment issues, can't easily use SIMD instructions on it etc.
Ideally the decoders should set AVCodecContext.bits_per_raw_sample to indicate how many bits actually are relevant.
The AC3 decoder in libavcodec should be "trivial" to change to output either float or 32 bit integer (basically just replace the float_to_int16_interleave at the end of ac3_decode_frame). I'm not sure there's actually a point in doing so though.
It is very trivial, and I have a working patch for it, but it is slower at decoding because the current float-to-int16 conversion combined with channel interleaving is faster than just plain float interleaving.

albain
24th January 2010, 21:10
It is very trivial, and I have a working patch for it, but it is slower at decoding because the current float-to-int16 conversion combined with channel interleaving is faster than just plain float interleaving.

Maybe but sound decoding and especially AC3 is not complex to decode for a CPU, even a non recent.

I think that you should propose your patch to ffmpeg team

In that way we will be able to drop liba52.

Same thing for DCA (DTS)

CruNcher
24th January 2010, 22:20
Thx tal.aloni for fixing the crashing problem with libavcodec.dll in ffdshow DXVA on close :) (that bug is history now)

albain
24th January 2010, 22:42
I have bad news : I have spent a few hours on multithreading the copy of DXVA buffers into system memory to speed up full postprocessing, with no luck

Things are going a little faster, but that's all.

Either we are doing something wrong (but I begin to doubt it), or else the sense GPU=>CPU gives by designed slow transfers

I hope that one will be able to get in touch with the intel's guy who wrote this article (but I guess that he only tried with low res videos)

Otherwise there is the DXVA HD feature that lets do non linear resize but this is too much work (at least for now)

dann23
24th January 2010, 23:18
I have bad news : I have spent a few hours on multithreading the copy of DXVA buffers into system memory to speed up full postprocessing, with no luck

Things are going a little faster, but that's all.

Either we are doing something wrong (but I begin to doubt it), or else the sense GPU=>CPU gives by designed slow transfers

I hope that one will be able to get in touch with the intel's guy who wrote this article (but I guess that he only tried with low res videos)

Otherwise there is the DXVA HD feature that lets do non linear resize but this is too much work (at least for now)


I have some questions. Maybe I'm missing something. You need to copy dxva buffers in memory to enable some filters and this is only for dxva 1. As I know with dxva 2 this is not needed. So are trying to do this because you want to implement dxva 1 in ffdshow? If that's the case then why not implement just subtitles for dxva 1 and use dxva 2 for the other case. And I know that windows xp has just dxva 1 but people are starting to use windows vista/7 so my oppinion is that it's enough to support dxva 1 with subtitles for windows xp.

tal.aloni
24th January 2010, 23:33
dann23,
AFAIK, copying the frame buffer from the USWC ("GPU memory") is a prerequisite for custom (not part of the API) post-processing in both DXVA 1.0 and 2.0.

BatKnight
24th January 2010, 23:34
About libavcodec TrueHD, I think that it is able to output 32 bits.

About FFDShow output logic, I am not very familiar with it but I know that for example if you let 16 bits check, you will get 16 bits only..
Yes, TrueHD does output 32bits.
The thing is, that on lossless codecs is always better to output the same as a the source, for example it is better to output TrueHD 24bits if the source is also 24bits. But if the 32bits is ticked, it now outputs 32bit. It should somehow recognize TrueHD and don't output more than the source format. This should be the case for all other lossless codecs.
One may think it's better to decode a lossless codec in a higher precision, but it's not. It could sometimes even be worse.

On the other hand, lossy codecs like DTS, AC3, MP3, etc should always be decoded in the higher precision possible (32bit float when possible) no matter what the source is. leeperry could help me elaborate here if needed...

When one ticks 16bit, 24bit, 32bit and 32bit float, the goal isn't to always output the highest possible, but to identify the source codec and output the best format for that codec.

My question is, what can be done to ffdshow that could identify the type of codec and then choose the appropriate format considering what I just explained. The goal of ffdshow is to achieve the best decoding quality possible, isn't it?

Bat

PS: Another thing I've noticed is that checking LFE Crossover changes from 32bit integer to 32bit float, on a TrueHD track, for example. Why?

Jeremy Duncan
25th January 2010, 02:14
I have bad news : I have spent a few hours on multithreading the copy of DXVA buffers into system memory to speed up full postprocessing, with no luck

Things are going a little faster, but that's all.

Either we are doing something wrong (but I begin to doubt it), or else the sense GPU=>CPU gives by designed slow transfers


I have a opinion on this problem.
- The cpu reads the stuff from the ram in bits.
- The gpu has it's own hw that acts as a cpu and the gpu has it's own ram on the videocard. But the way the gpu reads the ram is also in bits.

With these two facts agreed on, then integrating them, one for postprocessing the other for dxva, you would need to harmonize the way the read the ram and interact with each other.
I think the problem is they don't mesh together and they are trying to make it primarily cpu or gpu.
To fix this problem let the cpu and gpu sense each other so they don't try and make it either cpu or gpu only.

Jeremy Duncan
25th January 2010, 02:17
Thx tal.aloni for fixing the crashing problem with libavcodec.dll in ffdshow DXVA on close :) (that bug is history now)

Do you have any other bug?

CruNcher
25th January 2010, 02:35
sowt (quicktime audio) .mov decoding problems and artifacting with ffdshow DXVA and a 60 FPS stream on Nvidia VP2 booth seems to be known by now

Jeremy Duncan
25th January 2010, 03:18
artifacting with ffdshow DXVA and a 60 FPS stream on Nvidia VP2 booth seems to be known by now

It would be helpful to the devs here if you provided a sample clip where the problem is.
use dgsplit: link (http://neuron2.net/mine.html), a 100MB sample, and upload it to mediafire and provide the link here. The free uploader has problems sometimes, to fix this create a account and upload the file to your account.

Also if you can say which revision the problem appeared too, that would help. :)

hydra3333
25th January 2010, 08:27
Hi, I can't readily find a link answering this ...

Can I install ffdshow 32bit successfully on Windows Vista 64bit (and after an upgrade, Windows7 64 bit) so that MediaPlayerClassic (32bit I guess) uses it ? I'd prefer to use MPC as my standard player for everything. Is there anything special I have to do to get it to install/work ?

Any other advice (eg I'd heard there was something like a 64bit ffdshow and a 64bit MPC) ?

tal.aloni
25th January 2010, 09:41
Can I install ffdshow 32bit successfully on Windows Vista 64bit so that MediaPlayerClassic 32bit uses it?
yes

I'd heard there was something like a 64bit ffdshow and a 64bit MPC) ?
that's also true.

just remember, if your player is 64 bit, you'll need all your decoders to be 64 bit as well.

hydra3333
25th January 2010, 10:49
Great !

I've been reading in some threads how Micro$oft locks down the Media Foundation codecs in Windows7 so that effectively only their own run, or something like that ... so I'd prefer 32bit MPC with 32bit ffdshow since I guess it avoids all of that hassle.

You'd have thought the US' system and/or the EU would have pinged them for anti-competitiveness (anti-trust?) or something like that. :) Maybe that's coming in th future.

Thanks

albain
25th January 2010, 12:11
@dann23
I don't understand your point : in DXVA1 the buffers are allocated by the renderer. In DXVA2 the buffers are allocated by FFDShow, but in all cases this is the same result : buffers are pointers to direct3D surfaces wherever they are allocated.
And in all cases they have to be copied from the GPU
You could argue that they could just be read instead of copied but this would be worse : each internal filter needs to read the direct3D surface (or uncompressed buffer if you prefer) and as this reading is very slow, this is better to copy it once for good.

@Jeremy
I don't understand your point either : there is nothing to do with the CPU/GPU, this is a matter of bandwidth and direction (GPU to or from CPU)
The way you read can be tuned and this is what we tried : with SSE optimizations you fill and copy 128 bits registers but the improvements is very thick

No, the only (and last) lead is the intel's employee who claims to get a bandwidth that is 100x the bandwidth that we get.
But I think he made his tests with low res videos with which the bandwidth is not saturated.

Also note that we are talking about reading (GPU=>CPU), writing is very fast though.

iron2000
25th January 2010, 12:21
Just tried SPlayer.
Their GPU acceleration works very well.
No artifacts on seek and fast fullscreen switch.

Hope ffdshow will archive that soon too.

Astrophizz
25th January 2010, 13:30
Last I checked, SPlayer achieved GPU acceleration (and quick software decoding) by using a cracked version of CoreAVC. I'm not sure if that's still the case but I had an unpleasant experience uninstalling SPlayer the last time so I'm hesitant to try it again...

Edit: Ok, this (http://trac.splayer.org/changeset/1036) would seem to indicate that CoreAVC is no longer in SPlayer. In that case I can only guess that SPlayer now uses DXVA akin to MPC-HC.

dann23
25th January 2010, 15:54
@dann23
I don't understand your point : in DXVA1 the buffers are allocated by the renderer. In DXVA2 the buffers are allocated by FFDShow, but in all cases this is the same result : buffers are pointers to direct3D surfaces wherever they are allocated.
And in all cases they have to be copied from the GPU
You could argue that they could just be read instead of copied but this would be worse : each internal filter needs to read the direct3D surface (or uncompressed buffer if you prefer) and as this reading is very slow, this is better to copy it once for good.


I'm not argue about anything :) All I want is just dxva and subtitles. And as I understand from previos posts is that you don't have to read dxva buffers in this case(hope i'm not wrong). That's what I'm trying to say.

tal.aloni
25th January 2010, 16:30
All I want is just dxva and subtitles. And as I understand from previos posts is that you don't have to read dxva buffers in this case(hope i'm not wrong). That's what I'm trying to say.

yes, we have two alternatives that doesn't involve reads (only writes):
1. overlay the subs on top of the decoded picture, this seems to work well. (it's going to be faster than the method used in beta 2)

2. write a second buffer that include only the subtitles and opacity map (AYUV 32), and let the GPU do the alpha-blending. this should be possible, but I can't get it to work yet.

onomatopellan
25th January 2010, 17:09
Thanks you guys for your work in ffdshow dxva. I want to show my test with an ancient cpu like an Atlhon XP 2800+ and an ASUS AH3450 AGP 8x (ATI Catalyst 9.2) in Windows 7 32bits. Using MPC-HC 1.3.1503 with ffdshow dxva. The video is 720p and subs are external SSA.

Post Processing Disabled: cpu at 17%. It plays the movie without problem.

Overlay:
ffdshow_rev3206_20100118-DXVA-Post-Processing-Beta1: cpu at 70%. Subs are low quality and somewhat green but it's fast. I can watch 720p movies+subs without problem.
http://i47.tinypic.com/2lsekwk.jpg

ffdshow_rev3208_20100119-DXVA-Post-Processing-Beta2 cpu at 90%-100%. Subs are better and without the green colors. It shows garbage/blocks in the image at the beginning. Almost unwatchable.
http://i46.tinypic.com/357m2qt.jpg

Blend: with rev3208 cpu at 100%. Very good subtitles but unwatchable. Lots of garbage on the image at the beginning.
http://i45.tinypic.com/2m64vih.jpg


Full Post Processing: cpu at 100%. VERY slow (like 1fps). Lots of garbage on the image. Great subs but unplayable and unwatchable.

It would be great if you can implement an "overlay fast mode/low quality" like in rev3206 but without the green subs problem. Is this possible?

albain
25th January 2010, 19:01
I'm not argue about anything :) All I want is just dxva and subtitles. And as I understand from previos posts is that you don't have to read dxva buffers in this case(hope i'm not wrong). That's what I'm trying to say.

No problem, we consider any proposition, giving the fact that we are pretty out of ideas

rsd78
25th January 2010, 20:34
No problem, we consider any proposition, giving the fact that we are pretty out of ideas

I will add my vote to simply getting dxva + subtitles to work with low cpu usage. I can't speak for all users, but I think for those looking to get dxva working with ffdshow, the big plus would be able to get subtitles in any directshow player.

As you know there are plenty of current methods of getting dxva in general in any player. Currently the only option to get dxva + subs is either MPC-HC or CoreaVC (which requires an NVIDIA gpu). Give me that regardless of the player and gpu (assuming dxva is supported) and you extend the usefulness of ffdshow to a lot of users imo (especially as lower power htpcs are becoming more popular).

hoborg
25th January 2010, 21:08
+1 to dxva + subtitles

Perls
25th January 2010, 21:10
No problem, we consider any proposition, giving the fact that we are pretty out of ideas

Hi Albain,

When using dxva2, have you allocated the decoded frames in gpu-local memory or in non-cachable cpu memory? As it was an Intel guy who wrote the article I guess he only tried with frames decoded to un-cacheable main memory (intel integrated graphics). Accessing the frames over pci-express probably yields low throughput due to latencies.

tal.aloni
25th January 2010, 23:55
onomatopellan,
thanks for testing,
expect performance similar to beta 1, or slightly better.
(unless somebody else will optimize it further)

also, I have to confess, the subs in beta 1 were green because I mistaken (0,0,0) in yuv to be black, while it's actually green. :rolleyes:

roytam1
26th January 2010, 03:43
Sorry to bother you but when will ffdshow enable COOK audio codec?

Jeremy Duncan
26th January 2010, 04:11
Link to where you can watch this thread for replies to your problem. (http://software.intel.com/en-us/forums/showthread.php?t=71468&o=d&s=lr)

"Tom Craver works with 3D graphics IHVs to help them optimize their driver software on Intel's latest processors.
Previously he developed and validated driver and user interface software for cable modems and for Intel's DVI multimedia technology.
Prior to joining Intel, Tom was a member of the technical staff at the David Sarnoff Research Center in Princeton, NJ, and before that, he was with AT&T's Bell Laboratories.
Tom holds B.S. degrees in physics and computer science from the University of Illinois.
He also has a M.S. degree from Purdue University. His e-mail is tom.r.craver(insert at here)intel.com."

http://thumbnails27.imagebam.com/6537/7b8f0e65362601.gif (http://www.imagebam.com/image/7b8f0e65362601)

Tom Craver wrote that article you are talking about. Email him and ask him to look at the thread I started and reply to it. then registaer there and talk to him about your problem with dxva.

tetsuo55
26th January 2010, 09:31
@dann23
I don't understand your point : in DXVA1 the buffers are allocated by the renderer. In DXVA2 the buffers are allocated by FFDShow, but in all cases this is the same result : buffers are pointers to direct3D surfaces wherever they are allocated.
And in all cases they have to be copied from the GPU
You could argue that they could just be read instead of copied but this would be worse : each internal filter needs to read the direct3D surface (or uncompressed buffer if you prefer) and as this reading is very slow, this is better to copy it once for good.

@Jeremy
I don't understand your point either : there is nothing to do with the CPU/GPU, this is a matter of bandwidth and direction (GPU to or from CPU)
The way you read can be tuned and this is what we tried : with SSE optimizations you fill and copy 128 bits registers but the improvements is very thick

No, the only (and last) lead is the intel's employee who claims to get a bandwidth that is 100x the bandwidth that we get.
But I think he made his tests with low res videos with which the bandwidth is not saturated.

Also note that we are talking about reading (GPU=>CPU), writing is very fast though.Haali has some ideas about this iirc, please contact him.

cc979
26th January 2010, 09:41
Sorry to bother you but when will ffdshow enable COOK audio codec?

i was curious about that also, as vlc is able to play COOKED audio

tal.aloni
26th January 2010, 10:05
Great detective work Jeremy,

email sent.

BatKnight
26th January 2010, 20:01
Does anyone here as MKV sample with VC-1 that you tested working with DXVA?
All my MKV VC-1 files don't play in DXVA in ffdshow or MPC-HC, but the MKV H264 play in DXVA, and I would like to test with a VC-1 file that one can assure it's DXVA compatible.

Thanks

Bat

HeadlessCow
26th January 2010, 20:15
I've got a couple of VC1 samples that I know work with DXVA at home. I'll try muxing one into MKV tonight and see what happens with ffdshow and the old MPC-HC DXVA filter as well.

hoborg
26th January 2010, 20:56
Does anyone here as MKV sample with VC-1 that you tested working with DXVA?
All my MKV VC-1 files don't play in DXVA in ffdshow or MPC-HC, but the MKV H264 play in DXVA, and I would like to test with a VC-1 file that one can assure it's DXVA compatible.

Thanks

Bat

nVidia doesn't have VC-1 DXVA support if i am not wrong...

Px
26th January 2010, 21:07
nVidia doesn't have VC-1 DXVA support if i am no wrong...
Very limited support

BatKnight
26th January 2010, 21:41
Very limited support
Even with DXVAChecker stating: ModeVC1_IDCT: DXVA1/2, NV12, 720x480 / 1280x720 / 1920x1080?

So this means we (Nvidia owners) will not have DXVA for VC-1 files using ffdshow? Is this a Nvidia limitation or a ffdshow limitation?

Bat

HeadlessCow
26th January 2010, 21:59
I only have ATI cards (and integrated Intel on my laptop that doesn't support anything useful), do you still want me to check vc1/mkv support?

HeadlessCow
26th January 2010, 22:43
DXVAChecker on my ATI card lists ModeVC1_VLD rather than just IDCT. That's probably the difference that matters.

Also, tal.aloni on my card DXVAChecker also lists this under Processor Device:
DXVA2_VideoProcess_AlphaBlend: No
DXVA2_VideoProcess_AlphaBlendExtended: No

If that refers to the alpha blending operation you're trying to use, I bet that's why it's not working :(

tal.aloni
26th January 2010, 23:12
you're going to like beta 3:
+ text input pin has been enabled (thanks Albain).
+ I've restructured some methods to get some speed boost in overlay mode.

I want to focus on overlay for now so we'll be able to commit it soon, other methods will be discussed later.
+ please let me know if it's fast / stable enough to be commited.
+ also, I've fixed a small bug that is related to the software decoder, there is a method that supposed to generate empty picture with black background, but instead generates gray background, I fixed that (needed for overlay), please let me know if this have any effect on the software decoder (subs / osd maybe?), (I'll commit this before the main patch just to be sure)

build:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3227_20100126-DXVAPostProcessing-Beta3.exe

patch:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/3227-DXVA-Post-Processing-Beta3.patch

p.s.
HeadlessCow, you're awesome, I've just checked my primary card,
(Radeon 4550), same results as yours - does not support DXVA alpha-blending. at least I know why it didn't work. I also have a geforce 8200, I might test it as well when I have time.

tal.aloni
26th January 2010, 23:15
Developers, CruNcher:
there seems to be indeed a problem with libavcodec like CruNcher reported, he told me earlier that it's build related, but did not confirm yet.

I've got this twice during debug, using xhmikosr's 3227 build:

http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_libav_crash.png

XhmikosR
27th January 2010, 01:24
The only thing I changed recently, as I already have mentioned, is that I updated my GCC to 4.4.3.
Here (http://www.mediafire.com/?o2nvuijq5mo) is a build compiled with GCC 4.4.2 and here (http://www.mediafire.com/?mdmdziknm2m) is one compiled with GCC 4.5.0.

HeadlessCow
27th January 2010, 05:27
Beta3 report for me.... is mostly sadness.

MPC-HC crashes whenever I try to close it or change videos when using the DXVA decoder. This definitely fails the stability test ;)
Subtitle pin connects nicely, but doesn't actually display any subs. If I select a file specifically, it displays fine (well, doesn't match vsFilter output, but I'm not sure how close it should be matching anyways. Subs have a distinct black border that seems out of place.)
720p with overlay displaying OSD is about 4% CPU... pretty close to what it was before. Unfortunately I don't really have a slower system with DXVA support that I can test on to see if it performs reasonably on a more mainstream machine, but it's fast enough for me :-D
VC1 in WMV or MKV works fine for me. (Both MPC Decoder and ffdshow one)

_xxl
27th January 2010, 07:12
Developers, CruNcher:
there seems to be indeed a problem with libavcodec like CruNcher reported, he told me earlier that it's build related, but did not confirm yet.

I've got this twice during debug, using xhmikosr's 3227 build:

http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_libav_crash.png
If I remember correctly in latest revisions something had changed for thread free.

tal.aloni
27th January 2010, 08:24
The only thing I changed recently, as I already have mentioned, is that I updated my GCC to 4.4.3.

Thanks,
both crash.

3216 doesn't crash.
3219 does crash.

it's easy to recreate, I just drag another file to MPC-HC while playing DXVA content.

XhmikosR
27th January 2010, 11:21
OK, so I guess the problem is not GCC related. r3217 (http://www.mediafire.com/?5mmmy2inzrx) and r3218 (http://www.mediafire.com/?dmc00yzzynh).

littleD
27th January 2010, 13:25
OK. i thought i can try new ffdshow dxva.
I have sempron and hd3450. Win7 beta. cat 9.12 - i consider them bad for video playing.
First of all bad colorspace (bluefaces/green screen) was gone. VC-1 acceleration now works good. But i think i get higher cpu usage when playing from m2ts container.

I have to set post processing - software overlay for Subtitles and osd to make them appear. OSd make cpu go 100% but video somehow play almost full speed. Shadows of osd font are bad quality, while subtitles are hq and sharp. Havent seen any cpu increase when subs are on.

When i want play another file, or want to close MPC HC, player crashes. Always.

albain
27th January 2010, 14:11
Haali has some ideas about this iirc, please contact him.

What do you mean ? Do yo have his contact information ?

tal.aloni
27th January 2010, 14:18
Thanks for the feedback,
1. the sharp edges are a given (because we're overlaying and not blending). you can minimise this effect by using different settings.
I've tried different methods for overlay, this one seems to give the best ratio between quality and performance.

2. both my nVidia and ATI adapters does not support DXVA 1.0 Alpha Blending. however, both of them support DXVA 2.0 Substream processing, which was designed for subtitles.
I'm not very motivated to develop something that I can't use on my favourite OS, but it can be developed and used (Vista / Windows 7).
[please keep in mind that it's going to consume more CPU resources than overlay]

3. XhmikosR, I'll test within a few hours. :thanks:

Tal

clsid
27th January 2010, 14:34
What does the internal subtitle renderer of MPC-HC use? That works with DXVA and has low overhead.

CiNcH
27th January 2010, 14:49
What does the internal subtitle renderer of MPC-HC use? That works with DXVA and has low overhead.
Direct3D I would say...

tal.aloni
27th January 2010, 15:15
What does the internal subtitle renderer of MPC-HC use? That works with DXVA and has low overhead.

that's the first thing I asked casimir,
1. they are using Direct3D, they create a seperate DX surface and let the hardware merge the two surfaces using DX, however, in order to do so, they are using a custom renderer.
I believe you can only do it their way if you develop a custom renderer. (or serving a custom allocator presenter to the VMR9 renderer)

2. they get this great performace because they're not filling the entire surface, they're only drawing on a surface big enough to draw the subtitles [I think they are using multiple small surfaces] (you can't do it easily in ffdshow, especially not if the OSD is involved).

HeadlessCow
27th January 2010, 15:34
Oh yeah, one more thing. When playing VC1, the OSD showed up briefly when the video loaded, but wasn't visible after that.

Jeremy Duncan
27th January 2010, 16:17
What do you mean ? Do yo have his contact information ?

mike(insert at here)haali.net

rsd78
27th January 2010, 16:51
Anyone else able to report back any CPU usage comparison between latest beta (DXVA + Overlay) and just DXVA? Thanks

CiNcH
27th January 2010, 17:09
Beta 3 is great! With beta 2 I experienced a lot of judder with subtitles being used and an increase in CPU usage from < 10% to > 40% on a C2D E6420. With beta 3 now, playback seems perfect with a CPU usage of only < 20%, effectively cutting it in half.

rsd78
27th January 2010, 17:12
Also @Albain/Tal.Aloni,

Would Media Control now work with Beta3 to control subtitles? Thanks

onomatopellan
27th January 2010, 17:41
Great work with beta 3! :thanks:

It's very unstable (can't close the MPCHC without crashing like you said, cant' use Graphedit without crash) but I fixed it just replacing libavcodec.dll with the rv3217 XhmikosR's version. (rv3218 still crash BTW)

Overlay mode is very good, good quality and fast! In my AthlonXP2800 now I can watch 720p movies with subtitles with ~50% cpu usage (30% more than without Post processing) and karaoke is very fluid, awesome!
http://i49.tinypic.com/316kyyu.png

Something I've noticed is that in subs with fading (karaoke) the subtitles are somewhat transparent. These should be completely white for example:
http://i49.tinypic.com/snnxw0.png

Text input pin indeed has been enabled and I can use it now in Graphedit but it does detect the embedded sub in some mkv files and in some doesn't. External sub works without problem though. :confused:

tal.aloni
27th January 2010, 18:30
Something I've noticed is that in subs with fading (karaoke) the subtitles are somewhat transparent. These should be completely white for example:

well, oddly enough, that's actually on purpose,
you see, in YV12 / NV12 colorspace, 4 pixels (2x2) share the same color information (chroma), so if I would write the luma everytime I write the chroma, it would effectively limit the resolution by a factor of 1/4. (I've tried that, it looks aweful).

I guess I can write the chroma if I'm modifying 4 out of 4 pixels, it's not as fast though. I'm still experimenting.


Text input pin indeed has been enabled and I can use it now in Graphedit but it does detect the embedded sub in some mkv files and in some doesn't.
this shouldn't be different than the software decoder, regarding which format supported and which are not, I'm not an expert.
but I guess that now that we have DXVA with subs, we will have to improve.

tal.aloni
27th January 2010, 18:33
Guys, The crash starts with 3218!

Edit:
it seems pretty obvious why the crash is occuring @ 3218+ (w32thread.c):
if avcodec_thread_execute2 is called with count of 1 thread, than no thread would be allocated, and when trying to release with avcodec_thread_free, the crash would occur.


// One thread for DXVA mode
int numthreads=1;
libavcodec->avcodec_thread_init(avctx,threadcount=numthreads);


Edit:
I talked to the ffmpeg. I'll commit a fix soon.

HeadlessCow
27th January 2010, 18:45
this shouldn't be different than the software decoder, regarding which format supported and which are not, I'm not an expert.
but I guess that now that we have DXVA with subs, we will have to improve.

libass here we come! ;)

t seems pretty obvious why the crash is occuring @ 3218+:
if avcodec_thread_execute2 is called with count of 1 thread, than no thread would be allocated, and when trying to release with avcodec_thread_free, the crash would occur.

Nice find on the crash!

albain
27th January 2010, 19:17
Great work with beta 3!
Text input pin indeed has been enabled and I can use it now in Graphedit but it does detect the embedded sub in some mkv files and in some doesn't. External sub works without problem though. :confused:

It shouldn't, maybe some media types are missing

Could you post a sample and eventually debugview logs with working + non working samples ?

About Media Control, it should work with DXVA filter (the remote/keyboard filter is enabled)

arestarh
27th January 2010, 19:46
albain
Hello!
I'm again about problems with translation:
I can't open in translation mode dialogs:
http://i044.radikal.ru/0912/8c/4f224226244at.jpg (http://radikal.ru/F/i044.radikal.ru/0912/8c/4f224226244a.png.html)
And even I manually edit file of localization(add necessary strings), *Add* and *Reset* buttons in both dialogs and also dialog *Use ffdshow only in* is not appeared in GUI:
http://i056.radikal.ru/1001/8f/c5f527d8a0e5t.jpg (http://radikal.ru/F/i056.radikal.ru/1001/8f/c5f527d8a0e5.png.html)
simply, I can't translate this elements...

And about section of Subtitles in configuration dialog.
I can't translate this dialog:
http://s001.radikal.ru/i195/1001/5a/a492876a1c84t.jpg (http://radikal.ru/F/s001.radikal.ru/i195/1001/5a/a492876a1c84.png.html)

Edit:
Also, I can't translate following header(language file contains string "configuration=translation_of_this_header"):
http://i081.radikal.ru/1001/8b/9c44bb460e6dt.jpg (http://radikal.ru/F/i081.radikal.ru/1001/8b/9c44bb460e6d.png.html)

tal.aloni
27th January 2010, 19:47
crashing problem is fixed in rev. 3232
I've talked to ffmpeg devs, they have explained that avcodec_close() calls avcodec_thread_free(), so there's no need to call avcodec_thread_free() for the second time. (that's what caused the crash)

tal.aloni
27th January 2010, 23:28
Oh yeah, one more thing. When playing VC1, the OSD showed up briefly when the video loaded, but wasn't visible after that.

Thanks, this is fixed in beta 4,
however, there are still issues with VC-1, now the osd / subs will be shown only after ~100 frames. I'm not sure why.

also: overlay will not be "transparent" anymore, it now also writes chroma when 3 or 4 (out of 4) pixels (luma) are being written.
(it should be slightly slower, but not much)

build
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3233_20100127-DXVA-Post-Processing-Beta4.exe

patch
http://iknowu.net/files/public/ffdshow/DXVAPostProc/3233-DXVA-Post-Processing-Beta4.patch

HeadlessCow
28th January 2010, 00:33
now the osd / subs will be shown only after ~100 frames. I'm not sure why.

LOL! Tricky software! I'll check out the build tonight after celebrating my mom's birthday!

Jeremy Duncan
28th January 2010, 02:39
3233 patch for accurate frame seeking in avisynth (http://www.mediafire.com/?mdc4zzzo4tm)
generic beta (http://www.mediafire.com/?5zttvztwznt)
icl11 beta (http://www.mediafire.com/?qdhkd2jniyn)

leeperry
28th January 2010, 02:45
3233 patch for accurate frame seeking in avisynth (http://www.mediafire.com/?mdc4zzzo4tm)
generic beta (http://www.mediafire.com/?5zttvztwznt)
icl11 beta (http://www.mediafire.com/?qdhkd2jniyn)
thanks Jeremy, I'll look into them and report back!

the current official beta crashes sometimes at opening...but if I open it again, then it's fine?! it happens very rarely IME anyway, I'd say it works 99.99% of the time...good enough to me considering I use ColorMatrix(SD only)/LSF/GrainF3 on all my videos :devil:

CruNcher
28th January 2010, 07:59
crashing problem is fixed in rev. 3232
I've talked to ffmpeg devs, they have explained that avcodec_close() calls avcodec_thread_free(), so there's no need to call avcodec_thread_free() for the second time. (that's what caused the crash)

yep tried 3233 and its gone :)

littleD
28th January 2010, 10:03
Thanks, this is fixed in beta 4,
however, there are still issues with VC-1, now the osd / subs will be shown only after ~100 frames. I'm not sure why.
Here, subs may have slight delay. OSD shows immediately.

also: overlay will not be "transparent" anymore, it now also writes chroma when 3 or 4 (out of 4) pixels (luma) are being written.
(it should be slightly slower, but not much)
Yes, subs are white all the time.

Some vc-1 videos get cpu at 100%. And no crashes ofc.

onomatopellan
28th January 2010, 19:06
Testing beta4 and it's the best so far: no transparent subs, more stable and fast... great work!

@albain/tal.aloni: After testing lots of mkv files I have discovered in 80% of my collection embedded subs are not detected. So the problem maybe is not in ffdshow but in splitter (I'm using last haali) or something in the graph connection. Ffdshow software decoder detects the embedded sub without problem.

I noticed this: When subs are not shown I only have to delete de subtitle->In Text connection in GraphStudio and reconnect it again, and then the subs are shown without problem. :confused:
I have tried with all the problematic video files and now all the embedded subtitles are detected using the 'trick' above.

That's using GraphStudio/Graphedit, in MPC-HC embedded subs are not detected though.

These are the Debugview logs while using GraphStudio (playing the same video file):
LOG WHEN SUBS ARE NOT SHOWN (http://onomatopellan.pastebin.com/m2d7af829)

LOG WHEN SUBS ARE SHOWN (trick) (http://onomatopellan.pastebin.com/m7ffc8c22)

albain
28th January 2010, 20:45
Testing beta4 and it's the best so far: no transparent subs, more stable and fast... great work!

@albain/tal.aloni: After testing lots of mkv files I have discovered in 80% of my collection embedded subs are not detected. So the problem maybe is not in ffdshow but in splitter (I'm using last haali) or something in the graph connection. Ffdshow software decoder detects the embedded sub without problem.

I noticed this: When subs are not shown I only have to delete de subtitle->In Text connection in GraphStudio and reconnect it again, and then the subs are shown without problem. :confused:
I have tried with all the problematic video files and now all the embedded subtitles are detected using the 'trick' above.

That's using GraphStudio/Graphedit, in MPC-HC embedded subs are not detected though.

These are the Debugview logs while using GraphStudio (playing the same video file):
LOG WHEN SUBS ARE NOT SHOWN (http://onomatopellan.pastebin.com/m2d7af829)

LOG WHEN SUBS ARE SHOWN (trick) (http://onomatopellan.pastebin.com/m7ffc8c22)

I think this comes from the media types

I removed uncompress mediatypes but this is not a good idea because I guess that FFDShow DXVA may not be consulted for subtitles connection

tal.aloni
28th January 2010, 22:24
I commited DXVA post-processing to rev. 3237
The problem with VC-1 should be fixed.

Thanks to the beta testers, and especially thanks for Albain, who initiated this effort, and took a significant part of it along the way.

hardware blending is the only other viable option IMO besides surface overlay, the easiest implementation for ffdhow is by using DXVA 2.0 substreams (supported by ATI \ Nvidia).
(the DXVA 1.0 alternative is not supported by ATI \ Nvidia)

at the very least, now we have a method to fall back to.

albain
28th January 2010, 23:02
Thanks Tal, you're the best !

You did all the job, I just added a text pin lol :)

rsd78
28th January 2010, 23:21
I think this comes from the media types

I removed uncompress mediatypes but this is not a good idea because I guess that FFDShow DXVA may not be consulted for subtitles connection

Hi Albain,

My apologies but I couldn't quite decipher your answer. Did you change just now the way subs are handled with ffdshow dxva or that was something you had done before which may be the cause of the problem of embedded ones not being recognized?

If the latter, is this something that can be fixed?

Thanks!

albain
28th January 2010, 23:43
Hi Albain,

My apologies but I couldn't quite decipher your answer. Did you change just now the way subs are handled with ffdshow dxva or that was something you had done before which may be the cause of the problem of embedded ones not being recognized?

If the latter, is this something that can be fixed?

Thanks!

No I was referring to the very first version of ffdshow dxva that I made.

It has always been like that, and this is a supposition as I think that there is no reason why the dxva filter acts differently than the software decoder, at least for the connection part

I will digg this around but first a sample file would help

Sebastiii
29th January 2010, 00:06
Great men you are :)

So i'll need to test last version :)
Thx :)

onomatopellan
29th January 2010, 03:40
I will digg this around but first a sample file would help
This file has embedded subs and are shown in MPC-HC using ffdshow software decoder. If I use ffdshow DXVA then embedded subs are not detected though.

http://www.mediafire.com/?wnumkztyneo

thuan
29th January 2010, 05:33
Thanks to albain and tal.aloni that implemented DXVA and sub rendering with DXVA in ffdshow. I still have 2 problems with it though.

Sub bleeding and blocky
http://xs.to/thumb-ECA3_4B626276.jpg (http://xs.to/share-ECA3_4B626276.html)

And broken image when seeking that happens sometimes
http://xs.to/thumb-A38D_4B62643C.jpg (http://xs.to/share-A38D_4B62643C.html)

Tested at work on Intel G45, Windows Vista 64bit up to date BTW. I view my videos with Haali splitter. I also have the 9800GT with Windows 7 64bit at home and the 2nd problem happens there, too. I will check whether the first problem happens at my home computer configuration after work.

Thank you guys for the continuous development.

CruNcher
29th January 2010, 09:02
@thuan, tal.aloni , albain, clsid
this kind of artifacting is exactly the problem i meant that isn't happening with MPC-HCs DXVA Decoder under heavy load 1080p 60 FPS but happens with ffdshow DXVA without even seeking @ all just in a normal playback situation especially after scene changes :)

thuan
29th January 2010, 09:44
Unfortunately I haven't tested ffdshow DXVA decoder extensively enough to say the blocking problem also happens under normal playback, I will check later tonight or tomorrow.

clsid
29th January 2010, 14:27
@thuan, tal.aloni , albain, clsid
this kind of artifacting is exactly the problem i meant that isn't happening with MPC-HCs DXVA Decoder under heavy load 1080p 60 FPS but happens with ffdshow DXVA without even seeking @ all just in a normal playback situation especially after scene changes :)
There have been a lots of changes to the H.264 code in FFmpeg in the past two weeks. Maybe it is related to that and the DXVA code needs some work as well to adapt to the changes. MPC still uses a slightly older FFmpeg code base, as that is updated less often.

On a related note, libavcodec and ffmpeg-mt should give better performance now compared to any 2009 build. The gain is supposed to be a few %. It would be interesting to see some benchmarks.

clsid
29th January 2010, 14:36
I have a suggestion to make ffdshow DXVA a bit more robust. My idea is to adjust the "DirectShow control" functionality in the DXVA filter:
- Remove blacklist and compatibility manager
- Use an obligatory whitelist, which by default only contains the most commonly used players, and not the same huge list that the rest of ffdshow currently uses

The reason why I propose restricting the use of DXVA to known compatible applications is because DXVA is unreliable. For example bad drivers can cause video corruption and various other problems that do not occur with normal software playback. Another major issue are multiple decoder instances, DXVA only works in one instance at a time.

So DXVA should only be used in players, and not in any random DirectShow app, such as games and Explorer (thumbnailing). That way things stay within a controlled environment.

A side benefit of a small whitelist would also be that it is easier for a user to edit it, for example to only use DXVA in a specific player.

We also need to implement a good method to handle multiple decoder instances, so that only the first instance is allowed to use DXVA. Perhaps a mutex?

fastplayer
29th January 2010, 14:52
On a related note, libavcodec and ffmpeg-mt should give better performance now compared to any 2009 build. The gain is supposed to be a few %. It would be interesting to see some benchmarks.
Yep but there's something "odd" - in a good way - about libavcodec: CPU-load behavior is now very similar to ffmpeg-mt. In previous builds the CPU load would be like 80%/20% on core0/core1 when playing 1080p AVC content with libavcodec. Now both cores are evened out load-wise just like with ffmpeg-mt.

mark0077
29th January 2010, 15:08
clsid, could, when a second instance of ffdshow dxva fails to work, revert to non dxva. ie. don't use any mutex's, just try and if it fails, revert to non dxva?

HeadlessCow
29th January 2010, 16:05
Tested at work on Intel G45, Windows Vista 64bit up to date BTW. I view my videos with Haali splitter. I also have the 9800GT with Windows 7 64bit at home and the 2nd problem happens there, too. I will check whether the first problem happens at my home computer configuration after work.

Thank you guys for the continuous development.

thuan: could you do me a favor and try out the beta1 or beta2 build with the full processing mode to see if it drops frames like crazy? If the Intel guy wrote his code with an Intel graphics card, maybe you'll have better performance than the rest of us did. That would at least explain why he was able to get performance that is so much better than when tal.aloni used the code in ffdshow.

Caroliano
29th January 2010, 16:42
FFDShow's quantizer visualization and maybe also the "Frame mean quantizer" OSD info seems to be broken with H.264. Acording to Darkshikari:

The quantizer is only coded in the bitstream if there's coded coefficients in the block. This means that empty blocks (skip or otherwise) are displayed, when using the OSD, as using the quantizer of the previous block in raster-scan order.

I think that the correct behaviour would be to say that it is a empty block, maybe with an "/" instead of the number, for example. Any plans to correct this? FFDShow's OSD and visualizations is one of the main features of ffdshow for me (besides decoding, of course). It is really unfortunate that it is not displaying correct information, making it misleading and thus partially useless....

Original discussion and pictures: http://forum.doom9.org/showthread.php?t=152399

clsid
29th January 2010, 17:55
Yep but there's something "odd" - in a good way - about libavcodec: CPU-load behavior is now very similar to ffmpeg-mt. In previous builds the CPU load would be like 80%/20% on core0/core1 when playing 1080p AVC content with libavcodec. Now both cores are evened out load-wise just like with ffmpeg-mt.
The old slice based multi-threading patch has been disabled in libavcodec. Maybe it is related to that. But then I would expect all (decoding) load on a single core, instead of things being evened out. But keep in mind that the graphs in the Windows Task Manager will not always give a accurate view of reality. A single thread whose execution is constantly moved around between cores by the scheduler could for example show nicely evenly balanced graphs, while in reality all one core is doing all the work.

clsid, could, when a second instance of ffdshow dxva fails to work, revert to non dxva. ie. don't use any mutex's, just try and if it fails, revert to non dxva? Sure, if we can make it work like that it would of course be fine too. But keep in mind that this must be done during pin connection, so that can deny connection and give another filter a chance. Last time I tested in with MPC, playback just failed. I assume ffdshow will have the same problem, haven't tried yet. So the current implementation does not yet handle the situation adequately.

buletti
29th January 2010, 20:16
Now that there is a breakthrough in using DXVA with subtitles, is it likely that there will be real post processing, too? Applying actual video filters, especially via Avisynth, would be awesome and most beneficial (decode by GPU to save CPU cycles for post processing).
I understand that some post processing operations like scaling, color space or frame rate conversion will probably never ever work with DXVA. However, sharpening and denoising operations could probably work and would be greatly appreciated.

HeadlessCow
29th January 2010, 20:27
Well, right now it can't read the frame, just pass in something to put over the frame. Sharpening and denoising kinda need to know what the original video looks like :)

ikarad
29th January 2010, 20:35
No I was referring to the very first version of ffdshow dxva that I made.

It has always been like that, and this is a supposition as I think that there is no reason why the dxva filter acts differently than the software decoder, at least for the connection part

I will digg this around but first a sample file would help

Do you plan to add support of PGs subtitle because ffdshow doesn't recognized subtitles from blu-ray?

tal.aloni
29th January 2010, 20:44
sharpening and denoising operations could probably work and would be greatly appreciated.

HeadlessCow was right on the money.
the DXVA decoded frame ends up being written to USWC memory,
which was not designed for fast reading operations.

sharpening and denoising can be made to work with the beta 2, but you'll learn that it's unstable, and the CPU usage is greater than software decoding.

dann23
29th January 2010, 20:51
do you plan to add MPEG2 to be decoded using DXVA?

tal.aloni
29th January 2010, 21:01
do you plan to add MPEG2 to be decoded using DXVA?

I think that albain would share my view that if casimir (MPC-HC) will implement it, we will import it as well, but I don't really think it's worth the effort. mpeg2 decoding does not require much cpu power.

albain
29th January 2010, 21:02
Yes, also MPEG2 does not consume a lot of CPU

And MPEG2HD is a dead end (HDDVD)

hoborg
29th January 2010, 21:35
Hi.
By some reason i am not able to make DXVA + subtitles (and OSD) work.
Haali <-> FFDShow DXVA decoder Pin is connected, but no subtitles are displayed (EVR as renderer).
No problem in "normal" FFDShow.

Win7 + ATI 4770

EDIT:
Same result on XP:
http://www.volny.cz/hoborg/dxva+subs.jpg

tetsuo55
29th January 2010, 22:14
I think that albain would share my view that if casimir (MPC-HC) will implement it, we will import it as well, but I don't really think it's worth the effort. mpeg2 decoding does not require much cpu power.We already added it in http://sourceforge.net/apps/trac/mpc-hc/changeset/1552

dann23
29th January 2010, 22:38
We already added it in http://sourceforge.net/apps/trac/mpc-hc/changeset/1552

yes :D thank you. hope that albain will change his mind :)

tal.aloni
29th January 2010, 22:43
Hi.
By some reason i am not able to make DXVA + subtitles (and OSD) work.

have you enabled post-processing? (configuration > hardware acceleration)

Mr VacBob
29th January 2010, 23:08
On a related note, libavcodec and ffmpeg-mt should give better performance now compared to any 2009 build. The gain is supposed to be a few %. It would be interesting to see some benchmarks.

It should be more than 10% so far (it's not done yet). r21455 should improve high bitrates, but I didn't push it into mt yet.

There's also some MMX/SSE/2 inlined directly into the decoder now, so you'll see further improvements (~3%) if you can build with --cpu=i686 or higher.

hoborg
29th January 2010, 23:13
have you enabled post-processing? (configuration > hardware acceleration)

Nope, i miss that option, thanks! :)

MatLz
30th January 2010, 00:02
Hi!

I've updated to 3237 but I'm in trouble with gamma correction:

A capture speaks more than a thousand words (http://sendspace.com/file/l88t4q)

What's the hell?:devil:

tal.aloni
30th January 2010, 00:26
Hi!

I've updated to 3237 but I'm in trouble with gamma correction:


Edit:
I see it now, modifying contrast triggers it.
starts with rev. 3233

MatLz
30th January 2010, 00:38
I'm also in trouble with sourceforge and mediafire:D....I can just say I think 3207 was ok.

thuan
30th January 2010, 01:46
thuan: could you do me a favor and try out the beta1 or beta2 build with the full processing mode to see if it drops frames like crazy? If the Intel guy wrote his code with an Intel graphics card, maybe you'll have better performance than the rest of us did. That would at least explain why he was able to get performance that is so much better than when tal.aloni used the code in ffdshow.
I will, on Monday as the computer with G45 is my computer at work. By full processing mode you meant Surface Overlay Post Processing mode right? And what did you mean by beta2? The last ffdshow-tryouts version is beta 6. I haven't used ffdshow for far too long (been using MPC-HC internal filter).

onomatopellan
30th January 2010, 04:15
@thuan:This is beta1 http://forum.doom9.org/showthread.php?p=1364814#post1364814
and this is the beta 2 http://forum.doom9.org/showthread.php?p=1365503#post1365503

I think this comes from the media types

I removed uncompress mediatypes but this is not a good idea because I guess that FFDShow DXVA may not be consulted for subtitles connection

I have done more tests and these are the results using ffdshow DXVA rev3237 in MPC-HC:

In my PC with Windows 7 32bits -> embedded subs of most files (sample (http://www.mediafire.com/?wnumkztyneo)) aren't detected. Subs are not shown

In the laptop Windows 7 64 bits -> embedded subs of most files aren't detected. Subs are not shown

In a PC with Windows Xp 32 bits -> All the embedded subs of my files are detected flawlessly. Subs are shown without problem

So maybe the problem is in the way Text input pin is connected in Windows 7? Can please somebody with Windows 7 confirm this?

thuan
30th January 2010, 04:42
Thanks to albain and tal.aloni that implemented DXVA and sub rendering with DXVA in ffdshow. I still have 2 problems with it though.

Sub bleeding and blocky
http://xs.to/thumb-ECA3_4B626276.jpg (http://xs.to/share-ECA3_4B626276.html)

And broken image when seeking that happens sometimes
http://xs.to/thumb-A38D_4B62643C.jpg (http://xs.to/share-A38D_4B62643C.html)

Tested at work on Intel G45, Windows Vista 64bit up to date BTW. I view my videos with Haali splitter. I also have the 9800GT with Windows 7 64bit at home and the 2nd problem happens there, too. I will check whether the first problem happens at my home computer configuration after work.

Thank you guys for the continuous development.

At home, the blocking problem when seeking is still the same. As for sub with DXVA, it simply does not work on my 9800GT :D. Driver is 196.21 on Windows 7 64bit.

tal.aloni
30th January 2010, 09:05
At home, the blocking problem when seeking is still the same. As for sub with DXVA, it simply does not work on my 9800GT :D. Driver is 196.21 on Windows 7 64bit.

what do you mean by "does not work"?
did you enable "post processing"? (see above)

CiNcH
30th January 2010, 09:29
We already added it in http://sourceforge.net/apps/trac/mpc-hc/changeset/1552
But this is only MPEG-2 Bitstream which only works for some nVIDIA GPU's, right? Think most GPU's still only do MPEG-2 MC and iDCT.

albain
30th January 2010, 09:36
@thuan:This is beta1 http://forum.doom9.org/showthread.php?p=1364814#post1364814
and this is the beta 2 http://forum.doom9.org/showthread.php?p=1365503#post1365503



I have done more tests and these are the results using ffdshow DXVA rev3237 in MPC-HC:

In my PC with Windows 7 32bits -> embedded subs of most files (sample (http://www.mediafire.com/?wnumkztyneo)) aren't detected. Subs are not shown

In the laptop Windows 7 64 bits -> embedded subs of most files aren't detected. Subs are not shown

In a PC with Windows Xp 32 bits -> All the embedded subs of my files are detected flawlessly. Subs are shown without problem

So maybe the problem is in the way Text input pin is connected in Windows 7? Can please somebody with Windows 7 confirm this?

Thanks, I didn't test your sample but if you say that it works on XP this confirms my thoughts : on XP directshow consults filters for uncompressed formats, not on vista/7

Here is a test build to confirm this (http://damienbt.free.fr/ffdshow_rev3240_20100130_dbt_dxva_subs.exe)

Please tell me if this solves the problem

tal.aloni
30th January 2010, 10:34
Hi!

I've updated to 3237 but I'm in trouble with gamma correction

should be fixed in rev. 3241

MatLz
30th January 2010, 11:34
should be fixed in rev. 3241Thank you.

AiDz0r
30th January 2010, 12:32
Hi guys, I'm on Windows 7 64-bit at the moment, and now I need some help using/installing FFDSHOW Video Encoder for "Sony Vegas Pro 9", I'm having trouble encoding with it, I have downloaded two different version which are the latest version thats "ffdshow_rev3200_20100112_clsid_icl10" and "ffdshow_rev3222_20100123_clsid_x64", when ever I try encoding no matter what encoding type I do, if its a H.263 or a Mpeg-4/Xvid my Sony Vegas crashes when ever it begins encoding, also would I get any junk or broken registry on my Windows 7 because its fresh and don't want to ruin it. Here's my log when it crashes;
Extra Information
File: C:\Users\...\AppData\Local\Sony\Vegas Pro\9.0\dx_video_grovel_x64.log
File: C:\Users\...\AppData\Local\Sony\Vegas Pro\9.0\dx_grovel_x64.log
File: C:\Users\...\AppData\Local\Sony\Vegas Pro\9.0\vst_grovel.log

Problem Description
Application Name: Vegas Pro
Application Version: Version 9.0c (Build 895) 64-bit
Problem: Unmanaged Exception (0xc0000005)
Fault Module: C:\Program Files\ffdshow\ffdshow.ax
Fault Address: 0x000000002BC5DFCB
Fault Offset: 0x000000000019DFCB

Fault Process Details
Process Path: C:\Program Files\Sony\Vegas Pro 9.0\vegas90.exe
Process Version: Version 9.0c (Build 895) 64-bit
Process Description: Vegas Pro
Process Image Date: 2009-10-25 (Sun Oct 25) 23:34:26

tetsuo55
30th January 2010, 14:01
But this is only MPEG-2 Bitstream which only works for some nVIDIA GPU's, right? Think most GPU's still only do MPEG-2 MC and iDCT.Yes, but the same is true for all DXVA options in MPC-HC and FFdshow, bistreaming only.

HeadlessCow
30th January 2010, 15:21
@thuan:This is beta1 http://forum.doom9.org/showthread.ph...14#post1364814
and this is the beta 2 http://forum.doom9.org/showthread.ph...03#post1365503

These earlier betas have three post-processing modes. The third is called Full post-processing. tal.aloni removed it from the newer builds because it was super slow, but the technique came from an article by a guy at Intel that said it should have been waaaaaaaay more than fast enough. I wanted to see if the difference was because he was testing with an Intel embedded GPU and those of us that tested the ffdshow build all have ATI or nVidia.

onomatopellan
30th January 2010, 16:22
Thanks, I didn't test your sample but if you say that it works on XP this confirms my thoughts : on XP directshow consults filters for uncompressed formats, not on vista/7

Here is a test build to confirm this (http://damienbt.free.fr/ffdshow_rev3240_20100130_dbt_dxva_subs.exe)

Please tell me if this solves the problem
Thanks albain but it doesn't work. :(
The problem continues in Windows 7 with most of my files. I only can see the subs in Graphstudio reconnecting the subtitles pin.

I also tried updating the ATI drivers (HD3450 in the PC and mobility HD4530 in the laptop) but no luck.

albain
30th January 2010, 17:49
Yes, I have spent some time on it this afternoon with no luck

Actually the connection to the text pin is done (with MPC) and the subtitles are received and parsed by the subtitles reader of ffdshow

... but they are not displayed

I'll continue to work on this, maybe Tal will have an idea

The only difference in the logs between ffdshow video and ffdshow dxva is a ReconnectOutput call in ffdshow video.

NAILED IT : the imgfilters are not initialized when the subtitles are loaded

albain
30th January 2010, 18:21
This is fixed in revision 3246 (embedded subtitles in DXVA)

tal.aloni
30th January 2010, 18:26
I discovered that enabling overlay can make seeking a bit unstable,
it seems that the DXVA API call to GetBuffer() might wait infinitely for a locked buffer to be unlocked. I tried to figure out why, but so far I couldn't.

maybe albain will have an idea. (right back at you, buddy :))

Tal

edit:
this may have something with the fact that we're voilating the API when we're requesting the uncompressed buffer address after the allowed time.

albain
30th January 2010, 19:02
I discovered that enabling overlay can make seeking a bit unstable,
it seems that the DXVA API call to GetBuffer() might wait infinitely for a locked buffer to be unlocked. I tried to figure out why, but so far I couldn't.

maybe albain will have an idea. (right back at you, buddy :))

Tal

edit:
this may have something with the fact that we're voilating the API when we're requesting the uncompressed buffer address after the allowed time.

I had this problem when working on multithreading

I had deadlocks that were caused by
1/ either the m_csCodecs_and_imgFilters lock
2/ or the fact that all the buffers are allocated and waiting to be delivered BUT there is a new compressed buffer coming and no more available buffers (GetDeliveryBuffer is locked)

The solution, when a seeking occur, in the NewSegment method (which is called) freeing all the buffers
Easier to tell than to do because some buffers are being processed, some others are being copied

I'll have a look at it tomorrow

tal.aloni
30th January 2010, 19:28
albain,
thanks, however, this seems to be occuring with DXVA 1.0 only.
it might be somehow connected to the fact that under windows 7 I get immidiate garbled seeking, and in XP it's usually prettier.

EDIT:
calling Sleep(1) befire calling GetBuffer seems to help more than a bit.
I'll test and commit if this is effective.

albain
30th January 2010, 21:25
albain,
thanks, however, this seems to be occuring with DXVA 1.0 only.
it might be somehow connected to the fact that under windows 7 I get immidiate garbled seeking, and in XP it's usually prettier.

EDIT:
calling Sleep(1) befire calling GetBuffer seems to help more than a bit.
I'll test and commit if this is effective.

If this doesn't work you can put a shared CCritsec dxvaLockBuffer
1/ NewSegment or brefore GetDeliveryBuffer (don't know which one causes the deadlock) : autolock(dxvaLockBuffer)

2/ Before calling GetBuffer : autolock(dxvaLockBuffer)

onomatopellan
30th January 2010, 22:35
This is fixed in revision 3246 (embedded subtitles in DXVA)
YES!! :D All my files works now. Thanks a lot!

tal.aloni
30th January 2010, 22:48
I managed to resolve the deadlock issue in rev. 3248

instead of deadlocking on skip, if the renderer is not ready after 50ms, the frame will not be post processed.
for now, this may create a tiny delay for subtitles (40ms on average, I'm not compensating yet), but it's way better than deadlocking. :)

Tal

albain
30th January 2010, 23:17
Glad you fixed it :cool:

Casshern
31st January 2010, 00:15
should be fixed in rev. 3241

Hi there is also a long standing bug with 48000 khz, 24 bit, lpcm mono sound. This is found on a lot Criterion BluRay disks. It is played back through ffdshow in slow motion. It is roughly half the speed, as if ffdshow produces only half the samples per second - maybe ffdshow internally still thinks its stereo even though it correctly displays: 48000 khz mono 24 bit as input. If you need a sample - tell me exactly how (what tools) and what you need.

iron2000
31st January 2010, 04:18
I artifacting I had with ffdshow DXVA is similar to thuan's (http://forum.doom9.org/showthread.php?p=1369038#post1369038).
The picture explodes on seek and the picture slows and desyncs, theres lag on switching in and out of full screen.

DXVA for MPCHC isn't perfect as well.
Its slow to keep up when seeking(no artifact but desyncs for quite a period).
Sometimes its gets slow and affects the switching in and out of full screen.

So far for me its better to use the CPU to decode video.
DXVA gives me the impression that using GPU to decode is much slower.
(I'm don't know a lot about video decoding so I may have the wrong impression.)

tal.aloni
31st January 2010, 09:25
Hi there is also a long standing bug with 48000 khz, 24 bit, lpcm mono sound

I'm pretty sure it has more to do with libavcodec (ffmpeg) than with ffdshow, in any way, to post a sample you'll need eac3to and mkvtoolnix,
use: eac3to "C:\00001.m2ts" --demux
to demux all of the tracks to the current directory, and then use mkvmerge (part of mkvtoolnix) to put the audio track inside mkv / mka, you can split it to several parts with predefined size. just upload a single part.

Casshern
31st January 2010, 14:26
I'm pretty sure it has more to do with libavcodec (ffmpeg) than with ffdshow, in any way, to post a sample you'll need eac3to and mkvtoolnix,
use: eac3to "C:\00001.m2ts" --demux
to demux all of the tracks to the current directory, and then use mkvmerge (part of mkvtoolnix) to put the audio track inside mkv / mka, you can split it to several parts with predefined size. just upload a single part.


eac3to created a file with the ending ".pcm". The GUI for MKVtoolnix 3.1.0.0 does not seem to recognize this as a valid format. Could you give me the correct commandline to process the pcm file?

tal.aloni
31st January 2010, 14:29
I have a suggestion to make ffdshow DXVA a bit more robust ...

you are right to point out that when some applications would try to use the DXVA decoder (avsp for instance), it would lead to problems.
and you are also right to point out that the DXVA decoder should be used only by video players.

I would not want to limit usage (keep in mind that some players have their own preferred list), but I wouldn't object turning on the white list by default. (one with a short list of popular players)

tal.aloni
31st January 2010, 14:37
eac3to created a file with the ending ".pcm".

interesting, I thought it was a compressed format.

you can use eac3to "C:\00001.m2ts" to view the list of streams,
identify the PCM track number, and then use eac3to "C:\00001.m2ts" 4:C:\1.flac
to encode it to flac (lossless), when 4 represents the number of the pcm track. mkvtoolnix will accept flac.

(I'm not sure the problem would persist with a flac though, but it's worth trying)

alternative suggestion: maybe TSMuxer can cut the the m2ts with the PCM

Casshern
31st January 2010, 16:50
interesting, I thought it was a compressed format.

you can use eac3to "C:\00001.m2ts" to view the list of streams,
identify the PCM track number, and then use eac3to "C:\00001.m2ts" 4:C:\1.flac
to encode it to flac (lossless), when 4 represents the number of the pcm track. mkvtoolnix will accept flac.

(I'm not sure the problem would persist with a flac though, but it's worth trying)

alternative suggestion: maybe TSMuxer can cut the the m2ts with the PCM

The problem only occurs with pure 48khz mono 24 bit tracks, as they are found on almost all criterion blurays. I will go with TSMuxer, because i suspect that the problem will not occur in another format. I will let you know when i am done with TSMuxer

CiNcH
31st January 2010, 17:13
Yes, but the same is true for all DXVA options in MPC-HC and FFdshow, bistreaming only.
I know yes. What I did not know however was that all GPU's with UVD2 and VP3 do support MPEG-2 Bitstream...

STaRGaZeR
31st January 2010, 17:17
I know yes. What I did not know however was that all GPU's with UVD2 and VP3 do support MPEG-2 Bitstream...

UVD2 doesn't support MPEG-2 bitstream, at least on Vista. Only MPEG-2 IDCT.

Casshern
31st January 2010, 17:21
interesting, I thought it was a compressed format.

you can use eac3to "C:\00001.m2ts" to view the list of streams,
identify the PCM track number, and then use eac3to "C:\00001.m2ts" 4:C:\1.flac
to encode it to flac (lossless), when 4 represents the number of the pcm track. mkvtoolnix will accept flac.

(I'm not sure the problem would persist with a flac though, but it's worth trying)

alternative suggestion: maybe TSMuxer can cut the the m2ts with the PCM

TSremuxer produces a "wav" file... playing this wavfile with mpc hc and ffdshow prefered yielded the following: ffdshow was not loaded and the filter used was waveparser. Interestingly when playing directly from the m2ts file the splitter passes it to ffdshow as l(pcm). So I made ffdshow to accept uncompressed. Now ffdshow is in the filterchain, right after waveparser. And everything works fine - it displays 48khz 24 bit mono (uncompressed) as input. This implies that the problem is due to one of the following:

1) The splitter parses 48khz mono 24 bit (l)pcm tracks from m2ts incorrectly - maybe screwing up the timestamps.

2) The splitter parses correctly (and tsremuxer and eac3to both worked - so it's unlikely that the parser in mpc hc is different) the input via (l)pcm in ffdshow somehow screw up the timestamps.

Now, as the tsremuxed wav file is of no use - how about i used chop a couple of secondes of the m2ts file (including video and all). Would that help to pinpoint the bug?

tal.aloni
31st January 2010, 18:20
Now, as the tsremuxed wav file is of no use - how about i used chop a couple of secondes of the m2ts file (including video and all). Would that help to pinpoint the bug?

that's what I meant, using tsmuxer to split the m2ts.

CiNcH
31st January 2010, 19:44
UVD2 doesn't support MPEG-2 bitstream, at least on Vista. Only MPEG-2 IDCT.
Think this depends on the decoder..

Snowknight26
31st January 2010, 19:49
No, it doesn't.

CiNcH
31st January 2010, 19:53
So the Wikipedia information is simply wrong?

STaRGaZeR
31st January 2010, 20:06
So the Wikipedia information is simply wrong?

Yes. Use DXVA Checker if you really want to know what modes are supported by your graphics card.

CiNcH
31st January 2010, 20:14
Does MS specify MPEG-2 Bitstream somewhere? What do those ID's without name in DXVAChecker mean?

EDIT:
Ah, I see... ModeMPEG-2_VLD would be MPEG-2 Bitstream.

Kado
31st January 2010, 20:47
I can't see the subtitles using ffdshow dxva rev. 3247 although they appear appear in the list. OSD also does not work. Tried with graphedit and mpc hc rev.1586. Surface overlay is enabled. W7 x64, EVR and updated DirectX.

tal.aloni
31st January 2010, 21:17
Kado,
Are you using nvidia GPU?

my guess is that beta 1 works for you:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3206_20100118-DXVA-Post-Processing-Beta%201.exe

(beta 1 does not violate DXVA GetBuffer() specs)

please also test beta 3:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/ffdshow_rev3227_20100126-DXVAPostProcessing-Beta3.exe

(beta 3 is the last to lock the buffer for write operations, Beta 4+ locks it as read only)

Edit:
This issue should be fixed in rev. 3254,
we now lock the buffer for writing (the intel article suggested locking for read only to improve performance)
if you detect any change related to speed from 3253 to 3254, I would like to hear about it.

Tal

tal.aloni
31st January 2010, 22:50
during my post processing tests I encountered an issue with the latest nvidia drivers (196.21) under XP x64.

the overlayed image looked like this:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/Nvidia-DXVA-Post-Processing-Colorspace-Driver-Issue.png

(probably wrong stride [a.k.a pitch] returned by the driver):

older drivers (190.38, 195.62) did not have this problem.

avivahl
31st January 2010, 23:05
during my post processing tests I encountered an issue with the latest nvidia drivers (196.21) under XP x64.

the overlayed image looked like this:
http://iknowu.net/files/public/ffdshow/DXVAPostProc/Nvidia-DXVA-Post-Processing-Colorspace-Driver-Issue.png

(probably wrong stride [a.k.a pitch] returned by the driver):

older drivers (190.38, 195.62) did not have this problem.Did you try the latest beta drivers? (196.34)
Did you report the problem to Nvidia?

Gleb Egorych
31st January 2010, 23:05
during my post processing tests I encountered an issue with the latest nvidia drivers (196.21) under XP x64.

Please also report it here --> http://forums.nvidia.com/index.php?showforum=33
It's possible that the bug will be fixed.

tal.aloni
31st January 2010, 23:35
I tested the nVidia issue further, it seems that after rev. 195.81 nVidia started using a different colorspace for the decoded surface (instead of NV12).
(Edit: this is true for XP x64, but Windows 7 x64 is not affected at all)

I guess I can learn about this new colorspace, write a method to overlay to it, and test adapter and driver revision (done today for different purposes) to choose the correct colorspace, but it's not a priority for me - driver rev. 195.62 works well.

p.s.
1. anybody with an Intel adapter tested DXVA surface overlay?
2. anybody with XP x86 experiencing this?
3. the new colorspace seems to be interlaced format.

Casshern
1st February 2010, 01:41
that's what I meant, using tsmuxer to split the m2ts.

Hi,

I made a small 5 sec sample, where you can hear the bug pretty clearly. Interestingly the video ends after 5 seconds and the audio is still playing another 5 seconds with mpc hc + ffdshow(as a audio decoder) at half speed:

http://www.mediafire.com/file/omtnmdnjiyy/sample.m2ts

Thanks very much for looking at this.

Kado
1st February 2010, 04:02
@tal.aloni
Thanks! rev3254 works properly.
Only the rendering quality is way worse than of MPC-HC's internal renderer.
http://kado.heliohost.org/kado/bts_720p_subs_compare.png
Subtitles texture resolution for MPC-HC was 1680x1050.
ffdshow was using default settings but I don't think they make any difference.
Embedded ASS subtitles.
I think this was always like this since the subtitle implementation in ffdshow.

HeadlessCow
1st February 2010, 04:38
ffdshow uses its own subtitle parsing code and it's... subpar ;) MPC-HC uses vsfilter (basically) and that's what all the fansubbers use to create the subs in the first place. mplayer/VLC use libass which supports nearly everything that vsFilter does (even the bugs) with a few exceptions. Unfortunately, having two strong libraries means that ffdshow gets kinda ignored. And until the recent DXVA work, it didn't matter anyways because you'd just use ffdshow+DirectVobSub if you wanted subs and MPC-HC with the internal sub renderer if you wanted DXVA with subs.

avivahl
1st February 2010, 05:14
Well, w/ libass having a lot of progress (http://code.google.com/p/libass/) in the past few months, I think ffdshow can gain a lot by using it for ass rendering (instead of the current code).

tal.aloni
1st February 2010, 07:38
@tal.aloni
Only the rendering quality is way worse than of MPC-HC's internal renderer.

the sharp borders are a result of overlaying the subs (instead of alpha-blending them), MPC-HC uses alpha-blending.

as I said earlier, it's possible to implement DXVA 2.0 substreams to achieve alpha-blending with Vista / Windows 7.

tetsuo55
1st February 2010, 08:02
I know yes. What I did not know however was that all GPU's with UVD2 and VP3 do support MPEG-2 Bitstream...UVD2 doesn't support MPEG-2 bitstream, at least on Vista. Only MPEG-2 IDCT.UVD2 mpeg2 bitstream support is not DXVA, but shader based and as such can not be used :(

CiNcH
1st February 2010, 09:17
UVD2 mpeg2 bitstream support is not DXVA, but shader based and as such can not be used
MPEG-2 iDCT was shader based because UVD lacked support for it. UVD2, in my opinion, can do MPEG-2 Bitstream in its "Fixed Function Unit" to adhere to the BD 1.1 Profile for Dual-Stream, so this is not done within shaders. What is true however, at least in my opinion, is that it can't be accessed via DXVA. Think the ATi MPEG Decoder (AVIVO/X-Code) may do this proprietarily.

tetsuo55
1st February 2010, 09:32
MPEG-2 iDCT was shader based because UVD lacked support for it. UVD2, in my opinion, can do MPEG-2 Bitstream in its "Fixed Function Unit" to adhere to the BD 1.1 Profile for Dual-Stream, so this is not done within shaders. What is true however, at least in my opinion, is that it can't be accessed via DXVA. Think the ATi MPEG Decoder (AVIVIA/X-Code) may do this proprietarily.that me be true, in any case, its inaccessible to us unless ATI gives us the specs.

decapitado
1st February 2010, 12:17
Is it possible to use Sharpen with the dxva decoder?

I don´t see any options related to PQ in the options, only in the general Video Decoder options.

Are they related or dxva decoder has no image treatment at all?

tal.aloni
1st February 2010, 13:44
decapitado,
the DXVA decoder cannot read the decoded image fast enough, it can only overlay elements.
(and in the future, use DX api to blend elements - Vista / 7)

Kado
1st February 2010, 13:50
@HeadlessCow, avivahl, tal.aloni

I was trying ffdshow subs capabilities because mpc-hc drops frames if I don't buffer the subs, but buffered subs break the ASS animations, and the "allow animation when buffering" option does not always render the subs properly. On my Asus 1201N (Atom dual-core and NVIDIA Ion) the results are worse because of the way lower specs of the netbook.

Anyway, thanks and keep the good work!

STaRGaZeR
1st February 2010, 14:13
UVD2 mpeg2 bitstream support is not DXVA, but shader based and as such can not be used :(

UVD2 doesn't support MPEG-2 bitstream, stop reading Wikipedia already ;)

And yes, the modes ATI supports use the DXVA API. Whatever the card uses for decoding is irrelevant.

tetsuo55
1st February 2010, 14:40
UVD2 doesn't support MPEG-2 bitstream, stop reading Wikipedia already ;)

And yes, the modes ATI supports use the DXVA API. Whatever the card uses for decoding is irrelevant.If you find an error in a wikipedia article, you should correct it (with link to source/proof)

according to elecard UVD2.0 supports full bitstream decoding:
http://elecard.ru/technology/mpeg2-dxva.php

(See the changelog entry)

CiNcH
1st February 2010, 15:39
UVD2 doesn't support MPEG-2 bitstream, stop reading Wikipedia already
According to the official AMD Avivo HD paper (http://ati.amd.com/technology/Avivo/pdf/ATI_Avivo_HD_tech_brief.pdf), UVD 2.0 does.

Maybe you should stop reading DXVAChecker output ;) . I may give XvBA a go..

rsd78
1st February 2010, 16:20
Anyone mind sharing some CPU usage numbers for the latest dxva + overlay of subs release in comparison to just dxva? Thanks again!

STaRGaZeR
1st February 2010, 16:35
If you find an error in a wikipedia article, you should correct it (with link to source/proof)

according to elecard UVD2.0 supports full bitstream decoding:
http://elecard.ru/technology/mpeg2-dxva.php

(See the changelog entry)

Nothing in that page explicitly says what ATI cards support MPEG-2 VLD. Since that decoder also supports iDCT (which is supported by ATI) DXVA will be used, but not VLD. Just like Cyberlink's decoder.

According to the official AMD Avivo HD paper (http://ati.amd.com/technology/Avivo/pdf/ATI_Avivo_HD_tech_brief.pdf), UVD 2.0 does.

Maybe you should stop reading DXVAChecker output ;) . I may give XvBA a go..

ATI doesn't provide access to UVD2 through DXVA, so you can't use MPEG-2 bitstream if your OS is Windows, that's what I said in my original post. Well I said Vista at least, but XP and 7 are the same. FFDShow and MPC-HC are Windows only apps. XvBA doesn't matter here.

DXVA Checker tells you what DXVA modes the card supports, if MPEG-2 VLD it's not listed there it's because you can't use it. ATI+Windows == no MPEG-2 bitstream support.

If you think we're wrong just show us an UVD2 card performing VLD decoding and we will stand corrected. Since MPC-HC now supports VLD it should be easy ;)

CiNcH
1st February 2010, 16:38
MPC-HC decoders are not the center of the earth. Elecard decoder may be able to perform VLD for MPEG-2 on UVD 2.0 via proprietary interfaces. If I am not mistaken, ModeMPEG2_VLD is only valid for DXVA 2.0 anyway.

tetsuo55
1st February 2010, 16:39
Nothing in that page explicitly says what ATI cards support MPEG-2 VLD. Since that decoder also supports iDCT (which is supported by ATI) DXVA will be used, but not VLD. Just like Cyberlink's decoder.

Elecard Group
Added support for full bitstream decoding (also known as VLD or BitStreamRaw mode). Most recent NVIDIA & ATI video cards support this feature.

Rumours are you have to use the MPEG2_C or MPEG2_D for full bitstream mode.

STaRGaZeR
1st February 2010, 16:45
MPC-HC decoders are not the center of the earth. Elecard decoder may be able to perform VLD for MPEG-2 on UVD 2.0...

Elecard decoder is a DirectShow filter. Use it in MPC-HC and the stats will tell you what mode is used. Please report back if you see anything other than MPEG-2 IDCT ;)

Rumours are you have to use the MPEG2_C or MPEG2_D for full bitstream mode.

You should have bolded most too. Most is a nice way of not telling you anything.

Do you have facts? Rumours are not very useful. Just show us an UVD2 card doing VLD decoding, is as simple as that.

tetsuo55
1st February 2010, 17:06
Elecard decoder is a DirectShow filter. Use it in MPC-HC and the stats will tell you what mode is used. Please report back if you see anything other than MPEG-2 IDCT ;)



You should have bolded most too. Most is a nice way of not telling you anything.

Do you have facts? Rumours are not very useful. Just show us an UVD2 card doing VLD decoding, is as simple as that.thats up to casimir, albain and tal_aloni ;)

STaRGaZeR
1st February 2010, 17:19
thats up to casimir, albain and tal_aloni ;)

Since Casimir almost never responds here in Doom9 and you're MPC-HC project manager, ask him what card he used to implement and test his VLD implementation, or if ATI cards support it. Or better yet, ask him for a SS showing it so all readers can see it ;)

CiNcH
1st February 2010, 17:28
Elecard decoder is a DirectShow filter. Use it in MPC-HC and the stats will tell you what mode is used. Please report back if you see anything other than MPEG-2 IDCT
I neither have Elecard, nor do I have a GPU with UVD 2.0 ;) .

Rumours are you have to use the MPEG2_C or MPEG2_D for full bitstream mode.
May be true. I have a HD 3650 with UVD and it does not have an entry "ModeMPEG2_D", but series 4000 GPU's do have it.

decapitado
1st February 2010, 18:08
(and in the future, use DX api to blend elements - Vista / 7)
Like using shaders?

STaRGaZeR
1st February 2010, 18:17
A Mobility Radeon X300 (teh shit), from 2005:

ATI MOBILITY RADEON X300
ModeMPEG2_C: DXVA1, NV12, 720x480 / 1280x720 / 1920x1080
ModeMPEG2_D: DXVA1, NV12, 720x480 / 1280x720 / 1920x1080
ModeMPEG2_IDCT: DXVA2, NV12, 720x480 / 1280x720 / 1920x1080
ModeWMV8_MoComp: DXVA1/2, NV12, 720x480
ModeWMV8_PostProc: DXVA1/2, NV12, 720x480 / 1280x720
ModeWMV9_MoComp: DXVA1/2, NV12, 720x480
ModeWMV9_PostProc: DXVA1/2, NV12, 720x480 / 1280x720

:eek:

HeadlessCow
1st February 2010, 18:23
DXVA 2.0 includes the idea of "substreams". You render the subs into one of them with appropriate alpha levels and then pass it in to the DXVA code and it'll layer it on top of the decoded video using alpha-blending.

You can read about them on Microsoft's site. (http://msdn.microsoft.com/en-us/library/cc307964%28VS.85%29.aspx#overview)

googlebot
1st February 2010, 19:11
Who can tell the ffmpeg version number used in ffdshow Beta 6 ?
I want to compile ffmpeg in VS2005, add more ffmpeg source files in project in ffdshow.

Who can share this version ffmpeg source code ?

tal.aloni
1st February 2010, 19:33
Who can share this version ffmpeg source code ?

the project has an svn ( svn://svn.mplayerhq.hu/ffmpeg/trunk ),
you can use TortoiseSVN to get any version you want.

_xxl
1st February 2010, 19:39
I want to compile ffmpeg in VS2005
VS can compile only debug version of ffmpeg. You have to fix some compile errors because VS is not supported.

tal.aloni
1st February 2010, 19:49
interestig find:
I've tested my Geforce 8400 onboard GPU today and I found that it reports (via DXVA 1.0 API) that it supports blending of "16-entry AYUV palette with AI44 alpha-blending surface".

I was hoping for "AYUV graphic surface" blending, but that's still some good news (for nvidia owners who uses XP).

(it basically means that you can assign different transparency levels to 16 indexed colors instead of 256 transparency levels to any color)

I'm not sure how useful it would be to use 16 color palette,
It might be as ugly as overlay, but I might test this when I have the time.

Regards,
Tal

albain
1st February 2010, 21:42
Hi,

I intend to work on DXVA2 subsurfaces, but sorry I have plenty of work right now (like you Tal ;-))

Also Tal is more comfortable than me with DXVA, ... so don't expect any quick advancement, unless of course it reveals to be easy

Kado
1st February 2010, 23:30
I can test any alpha or beta software you guys make without any problems! ;) System specs at the signature.

tal.aloni
2nd February 2010, 09:17
Hi,

I made a small 5 sec sample, where you can hear the bug pretty clearly. Interestingly the video ends after 5 seconds and the audio is still playing another 5 seconds with mpc hc + ffdshow(as a audio decoder) at half speed:

http://www.mediafire.com/file/omtnmdnjiyy/sample.m2ts


I can confirm that there is an issue there, hopefully somebody will beat me to it, but I'll try to debug in a few weeks when I have the time.

STaRGaZeR
2nd February 2010, 13:38
@tal

When ffdshow overlays the subs, it does it before or after the graphics card resizing/postprocessing is done?

tal.aloni
2nd February 2010, 14:16
STaRGaZeR,
it's immediately after decoding, so it's probably before post-processing and resize.

I'm a bit curious regarding interlaced content, it's possible that the overlay method will produce odd results. if anybody have interlaced H.264 sample, let me know.

STaRGaZeR
2nd February 2010, 14:25
STaRGaZeR,
it's immediately after decoding, so it's probably before post-processing and resize.

I'm a bit curious regarding interlaced content, it's possible that the overlay method will produce odd results. if anybody have interlaced H.264 sample, let me know.

That's exactly why I'm asking. Also if you have a 480p video with subs they'll look bad for sure if they're overlayed at 480p and then resized to the display's resolution. That's one of the main advantages of MPC's subtitle renderer, so I wonder if it could be done that way in ffdshow.

tal.aloni
2nd February 2010, 14:34
so I wonder if it could be done that way in ffdshow.

the exact MPC-HC method itself cannot be implemented (see my reply to clsid few pages back),
however, the same results can be obtained using DXVA 1.0 Alpha-Blending (hardly supported by vendors) / DXVA 2.0 substreams.

STaRGaZeR
2nd February 2010, 15:14
Looking forward to DXVA2 substreams then :)

googlebot
2nd February 2010, 16:00
the project has an svn ( svn://svn.mplayerhq.hu/ffmpeg/trunk ),
you can use TortoiseSVN to get any version you want.

I have compare 1 file, ac3dec.c in ffmpeg\libavcodec folder
in ffdshow ac3dec.c file size is 53,438 bytes
in ffmpeg ac3dec.c file size is 50,424 ,

It seem that ffdshow has patch on ac3dec.c, eac3dec.c , is that right ?

avivahl
2nd February 2010, 17:23
Tal, when you're saying "DXVA2 substreams", are you talking about this (http://forum.doom9.org/showthread.php?t=151639)?

_xxl
2nd February 2010, 17:59
I have compare 1 file, ac3dec.c in ffmpeg\libavcodec folder
in ffdshow ac3dec.c file size is 53,438 bytes
in ffmpeg ac3dec.c file size is 50,424 ,

It seem that ffdshow has patch on ac3dec.c, eac3dec.c , is that right ?
Some files are not identical to latest ffmpeg because ffdshow's source code hasn't been updated yet. You''ll find also that ffdshow uses custom code.

tal.aloni
2nd February 2010, 18:55
avivahl,
we seem to be talking about the same end point, but you seem to refer to the transformation challenges while I refer to the implementation itself.

IA44 is just one implementation, and it doesn't really fit well into ffdshow. vobsub may output 16 colors, but our filters cannot.
DXVA 2.0 also offers per-pixel alpha blending, which is more appropriate to our needs.

p.s.
it has nothing to do with input pins.

ikarad
2nd February 2010, 19:44
No I was referring to the very first version of ffdshow dxva that I made.

It has always been like that, and this is a supposition as I think that there is no reason why the dxva filter acts differently than the software decoder, at least for the connection part

I will digg this around but first a sample file would help

Do you plan to add support of PGs subtitle because ffdshow doesn't recognized subtitles from blu-ray?
Can you answer me? thank you very much

albain
2nd February 2010, 19:57
Can you answer me? thank you very much

Yes, this is on the todo list but first we need an opensource reader.
I think that such exists but I didn't search

But we are really lacking of developers right now : me and Tal cannot work on so many things in parallel

DXVA2 substreams to add : HD & sharp subtitles, DXVA resize & postprocessing in general
DXVA improvements and fixes in general
HD audio bitstream
Media Foundation support
New codecs support (from ffmpeg)
Better support of SSA/ASS
bug fixing

ikarad
2nd February 2010, 20:08
Yes, this is on the todo list but first we need an opensource reader.
I think that such exists but I didn't search

But we are really lacking of developers right now : me and Tal cannot work on so many things in parallel

DXVA2 substreams to add : HD & sharp subtitles, DXVA resize & postprocessing in general
DXVA improvements and fixes in general
HD audio bitstream
Media Foundation support
New codecs support (from ffmpeg)
Better support of SSA/ASS
bug fixing
Thanks I expect that you can make as soon as possible because it doesn't exist any opensource player today that offers full support of pgs subtitle.

MPc-HC allow the support but it's very bugged and the support seems to be abandonned for this moment.

VLC will start the support with vlc 1.1 but beta version available today are very bugged for this moment.

The only thing that I can make is that I can give you many samples of blu-ray movie including pgs subs.

albain
2nd February 2010, 21:16
Thanks I expect that you can make as soon as possible because it doesn't exist any opensource player today that offers full support of pgs subtitle.

MPc-HC allow the support but it's very bugged and the support seems to be abandonned for this moment.

VLC will start the support with vlc 1.1 but beta version available today are very bugged for this moment.

The only thing that I can make is that I can give you many samples of blu-ray movie including pgs subs.

Yes, there is, but an empty project lol
https://sourceforge.net/projects/pgsreader

ikarad
2nd February 2010, 22:55
Yes, there is, but an empty project lol
https://sourceforge.net/projects/pgsreader

PGS reader is a software to convert pgs subtitle to srt file?

It exists some software to convert pgs subtitle to srt file (but i don't know if it's the same thing like pgs reader) like suprip.
http://www.videohelp.com/tools/SupRip

albain
2nd February 2010, 23:03
No, PGS subtitles are in PNG format and should remain in this format but such tools (as MPC/VLC) may be helpful

The goal is to have a reader than can parse and retrieve those bitmaps, uncompress and overlay them such as vobsubs

There is this page (http://exar.ch/suprip/hddvd.php) that describes the format

I am not sure, do HDDVD and BR subs have the same format ?

tal.aloni
2nd February 2010, 23:37
I am not sure, do HDDVD and BR subs have the same format ?

suprip does work on Blu-Rays, so the answer must be yes.

rica
3rd February 2010, 00:03
Sorry guys, i've been lost; what are we discussing?
I watch subtitles with MPC-HC, that's what i do care.
Live watching of any BD with its subtitles is much more important to me. -which MPC-HC makes-

Keiyakusha
3rd February 2010, 01:16
Hi. Can I somehow use ffdshow raw video filter only with MPC-HC?
I mean when I watching some video, I'm using resize most of the time (and something else, depending on situation) but even if I'll add this filter as external one, anything that I'm turning on in it turns on in "ffdshow video decoder" too and affects all formats...
So I should not to forget to turn everything off when I'm done watching, because I have plenty of software that uses directshow and where postprocessing is unwanted.

DigitalDeviant
3rd February 2010, 02:07
Sorry guys, i've been lost; what are we discussing?
I watch subtitles with MPC-HC, that's what i do care.
Live watching of any BD with its subtitles is much more important to me. -which MPC-HC makes-

Not if you have overlapping subtitles.

HeadlessCow
3rd February 2010, 02:27
Use the "Directshow Control" page in the ffdshow video configuration to list the applications you do, or do not, want ffdshow to be used in. This might not do exactly what you want, though since it will affect all of ffdshow's decoding, not just raw.

The other, slightly more complicated, option is to use profiles. You should be able to leave your normal ffdshow settings as the default profile, then create a second profile that only triggers when the application in use is mpc-hc.exe and the decoder is raw (if you only use it for post-processing). Then make this profile do the resize/whatever else you want.

Keiyakusha
3rd February 2010, 02:57
Use the "Directshow Control" page in the ffdshow video configuration to list the applications you do, or do not, want ffdshow to be used in. This might not do exactly what you want, though since it will affect all of ffdshow's decoding, not just raw.
I want to use ffdshow everywhere if appropriate filter is selected, but raw filter only in MPC-HC. So this is probably won't work... that list of applications is the same for both.

The other, slightly more complicated, option is to use profiles. You should be able to leave your normal ffdshow settings as the default profile, then create a second profile that only triggers when the application in use is mpc-hc.exe and the decoder is raw (if you only use it for post-processing). Then make this profile do the resize/whatever else you want.

Thanks, I was unaware of that possibility. I'll try to figure out how to make that...

But anyway since raw filter available as separate filter and it remembers some settings, such as colorspace selected for decoding (and this doesn't affect video decoder) then it will be good to make other settings separate too.

rsd78
3rd February 2010, 03:36
Thanks to albain and tal.aloni that implemented DXVA and sub rendering with DXVA in ffdshow. I still have 2 problems with it though.

Sub bleeding and blocky
http://xs.to/thumb-ECA3_4B626276.jpg (http://xs.to/share-ECA3_4B626276.html)

And broken image when seeking that happens sometimes
http://xs.to/thumb-A38D_4B62643C.jpg (http://xs.to/share-A38D_4B62643C.html)

Tested at work on Intel G45, Windows Vista 64bit up to date BTW. I view my videos with Haali splitter. I also have the 9800GT with Windows 7 64bit at home and the 2nd problem happens there, too. I will check whether the first problem happens at my home computer configuration after work.

Thank you guys for the continuous development.

Noticed the same thing on my htpc with rev 3254 still while fast forwarding/rew with media control.

I'm using win7 x32, ATI 2600xt, and e8400.

Unfortunately I didn't test too long because I need to restore from a backup to I wouldn't miss my recordings! :devil:

thuan
3rd February 2010, 10:37
Late report about Intel G45, Vista 64bit SP2, with latest Intel G45 driver with Full Processing DXVA Post Processing mode:
- Beta1: Crash.
- Beta2: Sub does not work, wrong chroma rendering.

Speed is the same as normal DXVA and this computer has a Xeon X3220 (Core 2 Quad Q6600 equivalent) so no SSE 4.1, ergo that might be the problem, who knows.

Back to current version svn3254, I still have the blocky sub problem with this version. Otherwise, my computer at home uses a 9800GT with Windows7 64bit now has the same result as kado's computer.

tal.aloni
3rd February 2010, 11:44
thuan,
Thanks for the update about G45.
with rev. 3254, how blocky are the subs, all the time? or occasionally?

are there times when you have smooth playback with subs?

my computer at home uses a 9800GT with Windows7 64bit now has the same result as kado's computer.
please elaborate.

rpm7200
3rd February 2010, 12:35
dxva filter may cause blocking problem with my 8800gt. mpc's dxva is really good. please fix it.

thuan
3rd February 2010, 13:36
@tal.aloni:
1. The sub is exploded and broken up all the time. I have only tested karaoke sub so I don't know if the problem is lying with only animated sub or any type. I will test it tomorrow at work.

2. No, I haven't got smooth playback, but I will test more with normal sub as stated above.

3. As in rough outline because of overlaying instead of alpha blending.

If you need me to test more feel free to ask, I might not answer right away but surely I will :D. BTW, please look into the blocking problem when seeking as you have the time, thanks.

tal.aloni
3rd February 2010, 13:50
please look into the blocking problem when seeking as you have the time, thanks.

this mostly happen when using DXVA 2.0, but our code is almost the same as MPC-HC, I couldn't figure it out yet. albain or me will probably do eventually.

ikarad
3rd February 2010, 16:35
Sorry guys, i've been lost; what are we discussing?
I watch subtitles with MPC-HC, that's what i do care.
Live watching of any BD with its subtitles is much more important to me. -which MPC-HC makes-

The problem is that support of blu-ray subtitle from mpc-hc is only partial and bugged like in beta versions of vlc 1.1. It's not a full support and for now the correction of bugs seems to be abandonned by developpers of mpc-hc (lack of time or other priorities I think). It would be interesting if ffdshow could offer the full support of blu-ray subtitles.

cbemoore
3rd February 2010, 18:42
For some reason, I can't get any files to play back properly using DXVA. I get about 3 or 4 seconds of garbled playback, and then my display driver resets again and again until I kill the player.

My setup:

Windows 7 x64
ffdshow x64 r3254
Windows Media Center
Win7DSFilter utility set to disable Media Foundation and enable ffdshow in WMC
NVidia 8500GT
Nvidia 196.34 x64 drivers

The normal ffdshow video decoder works perfectly, so I guess it must be something to with the ffdshow DXVA decoder.

This error has occurred ever since DXVA was first checked into SVN. I've tried changing graphics drivers (to the NVidia 196.21 WHQL drivers), but that hasn't helped...

Is there anything I can do to help track down the problem?

HeadlessCow
3rd February 2010, 21:44
What happens if you use WMP or MPC instead of Windows Media Center?

rica
3rd February 2010, 22:07
The problem is that support of blu-ray subtitle from mpc-hc is only partial and bugged like in beta versions of vlc 1.1. It's not a full support and for now the correction of bugs seems to be abandonned by developpers of mpc-hc (lack of time or other priorities I think). It would be interesting if ffdshow could offer the full support of blu-ray subtitles.

I wonder why i haven't met any bug?

rsd78
4th February 2010, 00:22
Finally testing rev3254, and I have found only 2 issues for me:

1. After skip/ff/rew blockiness in picture (already reported above)
2. The subtitle font size is much smaller than regular ffdshow. Playing the same movie with fonts on revealed a rather large difference in font size with all the obvious settings to me the same. I don't think anyone has reported this but I apologize.

This is all in Win 7 x32, WMC using ATI 2600xt and e8400.

thuan
4th February 2010, 04:18
@tal.aloni:
1. The sub is exploded and broken up all the time. I have only tested karaoke sub so I don't know if the problem is lying with only animated sub or any type. I will test it tomorrow at work.

2. No, I haven't got smooth playback, but I will test more with normal sub as stated above.
With normal sub, the problem is not as severe, but sometimes the timing is wrong when there's animated sub close by, and sometimes old sub does not get cleared and cause overlapping with newer sub. (On G45).

ikarad
4th February 2010, 12:52
I wonder why i haven't met any bug?
See here
http://sourceforge.net/apps/trac/mpc-hc/ticket/16
http://sourceforge.net/apps/trac/mpc-hc/ticket/48
http://sourceforge.net/apps/trac/mpc-hc/ticket/162

For example, one of bugs that i discovered is that when two subtitles from blu-rays are displayed in the same time, under mpc-hc, only one is displayed.
But if you see this links, you will see that support isn't perfect.

Momber
4th February 2010, 18:14
Sorry if this question has been asked before...
Are there any plans for ffdshow to decode DTS-HD MA completely in the future, as opposed to only the core?
ETA?

SamuriHL
4th February 2010, 18:20
Sorry if this question has been asked before...
Are there any plans for ffdshow to decode DTS-HD MA completely in the future, as opposed to only the core?
ETA?

Extremely unlikely. The DTS-HD MA spec is closed and there's no public information on how to decode it. There's literally NO OSS DTS-HD MA decoder out there.

rsd78
4th February 2010, 21:47
this mostly happen when using DXVA 2.0, but our code is almost the same as MPC-HC, I couldn't figure it out yet. albain or me will probably do eventually.

I don't know if this was explicitly stated or clear, but I wanted to add the blockiness after seeking appeared to only happen when Overlay was enabled vs just ffdshow dxva. This was only from my brief testing, so I could be wrong if it happens all the time with dxva.

SeeMoreDigital
4th February 2010, 22:40
Extremely unlikely. The DTS-HD MA spec is closed and there's no public information on how to decode it. There's literally NO OSS DTS-HD MA decoder out there.Is that for passing it as a bit-stream to an external decoder via HDMI or transcoding it to a multi-channel PCM stream via HDMI, or both?

SamuriHL
4th February 2010, 22:56
Is that for passing it as a bit-stream to an external decoder via HDMI or transcoding it to a multi-channel PCM stream via HDMI, or both?

There's no information on the spec period. Albain worked out how to bitstream it, so, that's already supported by ffdshow and has been working for a while now. However, decoding to LPCM is not an option. You can do the DTS core, but, the DTS-HD MA extensions can't be decoded.

BatKnight
4th February 2010, 23:31
Extremely unlikely. The DTS-HD MA spec is closed and there's no public information on how to decode it. There's literally NO OSS DTS-HD MA decoder out there.
If one plans to save the movie for future presentations, then the best way to keep the audio at its fullest is to decode the DTS-HD MA track with eac3to and Arcsoft Decoder (comercial) to FLAC, then mux the Flac into the MKV and remove the DTS-HD MA track from it. This way you will be able to play the lossless track with ffdshow.

This is what I do for movies I remux from Bluray and want to save. Of course this is not worth the trouble and time if you plan on watching the movie once and then delete it.
In the end, even if you're up to it, it's very hard to hear differences from DTS-HD MA and the internal core. I am not saying there aren't, because obviously there are, but you must have a very good Home Cinema set and even better ears.

Bat

SamuriHL
4th February 2010, 23:56
If one plans to save the movie for future presentations, then the best way to keep the audio at its fullest is to decode the DTS-HD MA track with eac3to and Arcsoft Decoder (comercial) to FLAC, then mux the Flac into the MKV and remove the DTS-HD MA track from it. This way you will be able to play the lossless track with ffdshow.

This is what I do for movies I remux from Bluray and want to save. Of course this is not worth the trouble and time if you plan on watching the movie once and then delete it.
In the end, even if you're up to it, it's very hard to hear differences from DTS-HD MA and the internal core. I am not saying there aren't, because obviously there are, but you must have a very good Home Cinema set and even better ears.

Bat

I'd rather keep the original track unmolested and bitstream it to my receiver. I know my receiver decodes things correctly (no downsampling, channel mapping issues, etc). Since bitstreaming bypasses all windows audio nonsense, then I am assured a nice, pristine sound experience the way it was intended. Yes, FLAC is great and is lossless, but, then you have to worry about making sure you're sending the resulting LPCM track (what FLAC is decoded to when playing it in ffdshow) is sent to the receiver using exclusive mode, else you're again at the mercy of windows audio. Bitstreaming allows me to avoid all these problems altogether. That's just my personal opinion. There is no one right way for everyone.

Caroliano
5th February 2010, 23:21
FFDShow's quantizer visualization and maybe also the "Frame mean quantizer" OSD info seems to be broken with H.264. Acording to Darkshikari:



I think that the correct behaviour would be to say that it is a empty block, maybe with an "/" instead of the number, for example. Any plans to correct this? FFDShow's OSD and visualizations is one of the main features of ffdshow for me (besides decoding, of course). It is really unfortunate that it is not displaying correct information, making it misleading and thus partially useless....

Original discussion and pictures: http://forum.doom9.org/showthread.php?t=152399
No-one interested in fix it? :confused:

Momber
6th February 2010, 11:47
decode the DTS-HD MA track with eac3to and Arcsoft Decoder (comercial) to FLAC
Sure, that's what I do.
But it would be nice to be able to skip this processing, not to the least in order to save time.
Maybe someone needs to reverse-engineer the Arcsoft Audio Decoder... hint, hint ;)

albain
6th February 2010, 20:37
Hi,

I didn't find out (yet) why seeking doesnt work with dxva2

Otherwise I am working on Bluray subs implementation using ffmpeg
Simultaneous subs will be handled

tal.aloni
6th February 2010, 22:30
I decided to have a quick look on the seeking issue related to DXVA 2.0,
unfortunately, after 6 hours, I still did not figure it out.

I suspect it has something to do with the Flush method.
it seems that MPC-HC does it differently [calls it from NewSegment()],
while we do it in BeginFlush() without locking the csReceive first.

when locking csReceive, I'm getting the famous deadlock, I tried to figure out why without success.
I don't even understand in which part those samples are being released.

Regards,
Tal

rica
6th February 2010, 22:56
We can not compare with nVidia's but i'm almost sure it's an Ati driver issue.

tal.aloni
6th February 2010, 23:49
rica,
I have both Radeon and Geforce, The skip issue is occuring on both. (DXVA 2.0)

rica
7th February 2010, 00:07
tal,
i maent a bitstream capable Geforce, dunno what nVidia card you meant? Or any bitstream capable nvidia card exists i don't know?

tal.aloni
7th February 2010, 00:39
rica, I thought you refer to the garbled-video-when-seeking issue with DXVA 2.0.
nevermind.

rica
7th February 2010, 00:57
Sorry tal, but i can't say i understood what you meant?

rsd78
7th February 2010, 01:09
I decided to have a quick look on the seeking issue related to DXVA 2.0,
unfortunately, after 6 hours, I still did not figure it out.

I suspect it has something to do with the Flush method.
it seems that MPC-HC does it differently [calls it from NewSegment()],
while we do it in BeginFlush() without locking the csReceive first.

when locking csReceive, I'm getting the famous deadlock, I tried to figure out why without success.
I don't even understand in which part those samples are being released.

Regards,
Tal

Sorry to hear that.

I don't know if it helps but I'm also seeing almost like a repeat of some frames after seeking, besides the blockiness. Would love it if this bugger could get figured out, but thanks again for all the hard work.

Snowknight26
7th February 2010, 03:39
This panel could look better. Too many overlapping labels, lots white space and inconsistent spacing.

http://i48.tinypic.com/1zf0qco.jpg

With regards to corruption when seeking, I've noticed that Blu-ray remuxes of mine don't show any corruption at all when seeking, only encodes I've done. Could it possibly be related to slices?

tal.aloni
7th February 2010, 10:47
I don't know if it helps but I'm also seeing almost like a repeat of some frames after seeking, besides the blockiness.

I see that too.

I've noticed that Blu-ray remuxes of mine don't show any corruption at all when seeking, only encodes I've done.

I have curroption on both encodes and Blu-Rays (both H.264 and VC-1).

Thanks

albain
7th February 2010, 12:08
I decided to have a quick look on the seeking issue related to DXVA 2.0,
unfortunately, after 6 hours, I still did not figure it out.

I suspect it has something to do with the Flush method.
it seems that MPC-HC does it differently [calls it from NewSegment()],
while we do it in BeginFlush() without locking the csReceive first.

when locking csReceive, I'm getting the famous deadlock, I tried to figure out why without success.
I don't even understand in which part those samples are being released.

Regards,
Tal

Interesting, I came on the exact same problem at the beginning (first DXVA import) : so I disabled the lock
"CAutoLock lock(&m_csCodecs_and_imgFilters);" inside STDMETHODIMP TffdshowVideoInputPin::BeginFlush() for DXVA mode otherwise I got deadlocks

But maybe this lock should be replaced by another used only in DXVA methods

albain
7th February 2010, 12:55
Hi Tal,

I have made a patch that may fix the DXVA2 seeking

Can you tell me if this works for you ? Thanks

Here is the link (http://damienbt.free.fr/dxva2_seek_possible_fix.patch)

tal.aloni
7th February 2010, 14:30
Hi Albain,
unfortunately, when testing your patch I still got garbled input when seeking (DXVA 2.0), I also encountered a deadlock.

p.s.
both yesterday and today I've encountered this line several time in the debug log:

number of reference frames exceeds max (probably corrupt input), discarding one

albain
7th February 2010, 14:59
Hi Albain,
unfortunately, when testing your patch I still got garbled input when seeking (DXVA 2.0), I also encountered a deadlock.

p.s.
both yesterday and today I've encountered this line several time in the debug log:

number of reference frames exceeds max (probably corrupt input), discarding one

Oh, I saw that before when trying the multithreading lead: this means that the DXVA allocator is full of reference frames.
I had this problem when the DXVA H264 decoder messed up with the m_nOutPoc attribute in TDXVADecoderH264::FindOldestFrame()
if (m_pPictureStore[i].nCodecSpecific == m_nOutPOC && m_pPictureStore[i].rtStart < rtPos)

I don't know what this is for but the result is that the oldest frames remain in the allocator and are never processed whereas the new frames are processed.

This is a big problem because there are less slots available in the DXVA allocator (only 1/20 in my tests)

This was the reason why I gave up on multithreading

tal.aloni
7th February 2010, 18:01
I had another look,
the DeliveryBuffer is released when a condition is met upon a call to TDXVA2Sample::Release()

I saw that when decoding starts, about 20 frames are accumulated, and then, as you said, a single frame is removed for every single frame that is added.

tal.aloni
7th February 2010, 20:01
Albain,
see this patch, it doesn't resolve this issue completely, but it may teach us something.
I think one reason for the garbled input is that we're waiting for an I frame, but then not delivering it because rtStart < 0.

EDIT: or because m_pPictureStore[i].nCodecSpecific != m_nOutPOC
maybe this tells you something...


--- codecs/TDXVADecoderH264.cpp Sun Feb 07 20:54:17 2010
+++ codecs/TDXVADecoderH264.cpp Sat Jan 30 20:38:58 2010
@@ -227,7 +227,7 @@
return S_FALSE;

// Wait I frame after a flush
- if (m_bFlushed && !m_DXVAPicParams.IntraPicFlag)
+ if (m_bFlushed && (!m_DXVAPicParams.IntraPicFlag || rtStart < 0))
return S_FALSE;


--- TffdshowVideoInputPin.cpp Sun Feb 07 20:51:59 2010
+++ TffdshowVideoInputPin.cpp Sun Jan 31 19:12:14 2010
@@ -534,7 +534,7 @@
// it will be okay)
if (fv && fv->deci && video && video->useDXVA() != 0)
{
- m_rateAndFlush.m_flushing = true;
+ /*m_rateAndFlush.m_flushing = true;
video->BeginFlush();
comptrQ<IffdshowDecVideo> deciV=fv->deci;
TimgFilters* filters;
@@ -543,7 +543,7 @@
filters->onFlush();

m_rateAndFlush.flushed = true;
- m_rateAndFlush.isDiscontinuity = true;
+ m_rateAndFlush.isDiscontinuity = true;*/
return CTransformInputPin::BeginFlush();
}

albain
7th February 2010, 23:52
Ill test your patch tomorrow (dont have my Htpc accessible right now)

This mPoc variable is a real pain because if for a reason you a picture with a given Poc is not processed, it will never be processed and freed, which happens when you seek AND when seeking takes too much time : which occurs with processing in the loop

This problem also occurred with full postprocessing without seeking at all

I dont know why exactly, maybe because frames are dropped because incorrectly parsed during seeking or maybe because we didn't flushed all the frames in some cases

This is really difficult to understand. Vc1 does not have POCs maybe thé problem only concerns H264

tal.aloni
8th February 2010, 00:11
something is definitely not right in the code, but I can't understand why MPC-HC doesn't have any issue....
seeking problems happen also with VC-1.

cbemoore
8th February 2010, 16:19
For some reason, I can't get any files to play back properly using DXVA. I get about 3 or 4 seconds of garbled playback, and then my display driver resets again and again until I kill the player.

My setup:

Windows 7 x64
ffdshow x64 r3254
Windows Media Center
Win7DSFilter utility set to disable Media Foundation and enable ffdshow in WMC
NVidia 8500GT
Nvidia 196.34 x64 drivers

The normal ffdshow video decoder works perfectly, so I guess it must be something to with the ffdshow DXVA decoder.

This error has occurred ever since DXVA was first checked into SVN. I've tried changing graphics drivers (to the NVidia 196.21 WHQL drivers), but that hasn't helped...

Is there anything I can do to help track down the problem?

I've tried MPC-HC and I get the exact same crashing problem. So it looks like a problem with my card/drivers rather than an FFDShow bug.

I've tried rolling back to various older drivers, but no luck. So I've used it as an excuse to order a shiny new HD 5450 card :). I'll re-test when the card arrives and post any issues here.

Sorry for raising a false alarm!

Snowknight26
8th February 2010, 20:48
I'm glad DXVA support was ported from MPC-HC. Now I can complain about bugs in two threads. :P

http://i49.tinypic.com/3323wop_th.jpg (http://i49.tinypic.com/3323wop.jpg)

Lossless content should NOT be allowed to use DXVA. Maybe if someone fixes this issues in ffdshow they can fix it in MPC-HC as well. ;)

tetsuo55
9th February 2010, 08:42
something is definitely not right in the code, but I can't understand why MPC-HC doesn't have any issue....
seeking problems happen also with VC-1.

Pure luck, you should assume the bug is there in mpc-hc too, we're just lucky that a 2nd bug is making it invisable.

tal.aloni
9th February 2010, 10:09
lol, I didn't mean to offend MPC-HC. maybe I should have chosen my words more carefully. sorry!

tetsuo55
9th February 2010, 14:10
lol, I didn't mean to offend MPC-HC. maybe I should have chosen my words more carefully. sorry!Sorry i was not clear.

Here is what i mean.


Here is what you said:

1. You have found a problem in ffdshow with seeking
2. You wonder why MPC-HC does not have this problem (as you might find a soluton in the MPC-HC code or team)

Here is what i tried to say:

1. I "think" the problem you mention in ffdshow, occurs in MPC-HC in exactly the same way.
2. I "think" that in MPC-HC there is an accidental or purposefull "hack" to hide the problem.

MPC-HC has many wierd seeking bugs, maybe you have found the cause of this long standing issue :)

tal.aloni
9th February 2010, 14:25
tetsuo55,
it's possible that you are right,
I think I already found one possible bug with MPC-HC code,
I sent Casimir666 a PM, he might confirm, or point out that I'm wrong.

anyway, if I'm right, we'll have to make some big changes to DXVA frame store (internal mechanism to order frames before output). luckily, I have some experience in that exact part. (it's not going to be easy though)

JarrettH
9th February 2010, 21:55
are official builds, like the last one from 2008, not being released anymore?

rica
9th February 2010, 23:14
are official builds, like the last one from 2008, not being released anymore?

Yeah?
Why not following MS' method?
Just release fake alpha and put SP patches over it :)

PetitDragon
10th February 2010, 06:19
BUG REPORT!

After ffdshow tryouts project, svn 3247, when using "ffmpeg-mt" decoder, ffdshow refuses to auto load custom profiles (presets). It always loads default profile only.

Other decoders have no such problem.

Will it be fixed?

Thanks for your attention.

hoborg
10th February 2010, 15:17
Some small problems i found: (build 3255)

- if you click "export all settings" no DXVA registry keys are exported
- some DXVA subtitles setting are shared with standard subtitle settings - "Accept SSA..." for example - maybe it is correct, no idea.

tal.aloni
10th February 2010, 21:46
After a week of intensive code review, I've finally nailed the galbled-seeking issue:
it turns out that there is mechanism in ffdshow that drops input samples when decoding of current sample failed.
(in DXVA, we "fail" some input samples on skip)

I've disabled this mechanism for DXVA. (rev. 3258)

Thanks Casimir666 for providing guidance, and xhmikosr for additional assistance.

p.s.
1. for some reason, this affected only (or mostly) Windows Vista / 7.
2. during my long debug sessions I've uncovered some additional places that could use some improvements.

tal.aloni
10th February 2010, 22:00
BUG REPORT!

After ffdshow tryouts project, svn 3247, when using "ffmpeg-mt" decoder, ffdshow refuses to auto load custom profiles (presets). It always loads default profile only.

I have tested 3257, and I have no such issue.
make sure you use the latest version and that ffdshow is loaded for H.264

Sebastiii
10th February 2010, 22:10
After a week of intensive code review, I've finally nailed the galbled-seeking issue:
it turns out that there is mechanism in ffdshow that drops input samples when decoding of current sample failed.
(in DXVA, we "fail" some input samples on skip)

I've disabled this mechanism for DXVA. (rev. 3258)

Thanks Casimir666 for providing guidance, and xhmikosr for additional assistance.

p.s.
1. for some reason, this affected only (or mostly) Windows Vista / 7.
2. during my long debug sessions I've uncovered some additional places that could use some improvements.

Big thanks :)
Seb.

rsd78
10th February 2010, 22:54
After a week of intensive code review, I've finally nailed the galbled-seeking issue:
it turns out that there is mechanism in ffdshow that drops input samples when decoding of current sample failed.
(in DXVA, we "fail" some input samples on skip)

I've disabled this mechanism for DXVA. (rev. 3258)

Thanks Casimir666 for providing guidance, and xhmikosr for additional assistance.

p.s.
1. for some reason, this affected only (or mostly) Windows Vista / 7.
2. during my long debug sessions I've uncovered some additional places that could use some improvements.


Amazing work!!! Thank you and all the other developers for all the time you have put into this, it is greatly appreciated.

rica
10th February 2010, 23:01
Can't find 3258?

XhmikosR
10th February 2010, 23:11
You can try the link in my signature.

rica
10th February 2010, 23:20
Thanks, i'll give it a go. :thanks:

rica
10th February 2010, 23:46
Quick test results:
No seeking issues with DTSHD-MA left but seeking issues for THD still persist. (at least better comparing with the previous btw)

thuan
11th February 2010, 02:45
Have any of you tried 3258 by XhmikosR, I can't make DXVA work here. It's just stuck right at starting playing. I tested MKV with H264 video using internal MPC-HC splitter.

rack04
11th February 2010, 03:07
Have any of you tried 3258 by XhmikosR, I can't make DXVA work here. It's just stuck right at starting playing. I tested MKV with H264 video using internal MPC-HC splitter.

Confirm.

tiben20
11th February 2010, 03:07
Have any of you tried 3258 by XhmikosR, I can't make DXVA work here. It's just stuck right at starting playing. I tested MKV with H264 video using internal MPC-HC splitter.
Yeah its not starting me neither

onomatopellan
11th February 2010, 03:19
Using Haali Media Splitter -> no problem here!

rsd78
11th February 2010, 04:22
Still getting blockiness (but no repeating frames) after skipping/ff/rew in 3258 using Win 7 x32. I think it might be better but can't say for sure.

tal.aloni
11th February 2010, 07:38
Still getting blockiness (but no repeating frames) after skipping/ff/rew in 3258 using Win 7 x32. I think it might be better but can't say for sure.

blockiness or garbled output?

tal.aloni
11th February 2010, 07:39
Have any of you tried 3258 by XhmikosR, I can't make DXVA work here. It's just stuck right at starting playing. I tested MKV with H264 video using internal MPC-HC splitter.

EDIT: hang problem fixed with rev. 3259

rpm7200
11th February 2010, 11:17
please add to dxva filter bt.709 . blu-ray movies use this. and thanks for hard working.

DMD
11th February 2010, 11:38
Good day to all

I call on the compatibility of new releases of ffdshow with MediaPlayerClassic Home Cinema.

I noticed that with the latest version ffdshow_rev3200_20100112_clsid_icl10 or ffdshow_rev3256_20100208_sse_icl11, pin Subpicture the DVD Navigator is connected directly to pin In Text of ffdshow.
In this situation do not play forced subtitles.

http://www.allfreeportal.com/imghost/thumbs/277435filtergraph ffdshow3256 (no forced subtitle).png ('http://www.allfreeportal.com/imghost/images/277435filtergraph ffdshow3256 (no forced subtitle).png')

http://www.allfreeportal.com/imghost/thumbs/60758001- dvd con ffdshow.png ('http://www.allfreeportal.com/imghost/images/60758001- dvd con ffdshow.png')



Using version ffdshow_rev2099_20080903_clsid_sse_icl10 pin Subpicture the DVD Navigator is connected to pin Subpicture MPEG-2 Video Decoder.
In this situation will play normally forced subtitles

http://www.allfreeportal.com/imghost/thumbs/365192filtergraph ffdshow2099 (forced subtitle).png ('http://www.allfreeportal.com/imghost/images/365192filtergraph ffdshow2099 (forced subtitle).png')

http://www.allfreeportal.com/imghost/thumbs/76824603- dvd senza ffdshow.png ('http://www.allfreeportal.com/imghost/images/76824603- dvd senza ffdshow.png')


can solve this problem with the latest release of ffdshow or do I use the old release?

THANKS

hoborg
11th February 2010, 11:48
@DMD
Can i ask why do you have two video decoders in one graph?

DMD
11th February 2010, 11:50
use ffdshow as a post processing, also in the setting of MPCHC I can not only set ffdshow video

hoborg
11th February 2010, 12:09
use ffdshow as a post processing, also in the setting of MPCHC I can not only set ffdshow video

You should have only one video decoder in graph:
http://hobring.esero.net/saf/FFDShow+subtitles.jpg

Disable MPC-HC internal MPEG-2 decoder, add FFDShow as external filter and setup it as prefered.

rsd78
11th February 2010, 14:01
blockiness or garbled output?

Good question, I don't remember exactly but I would describe it more as garbled output I think.

Midzuki
11th February 2010, 14:38
@DMD
Can i ask why do you have two video decoders in one graph?

Even though I use DScaler5 for DVD-Video, I'd like to use ffdshow's "raw video filter" at the same time. However ffdshow will connect to the subtitle pin of qdvd.dll if I use it. I would not complain about ffdshow NOT having *independent* video-processing/subtitle filters, IF these could resize correctly the SUP streams in *non-D1* VOBs. :(

PetitDragon
11th February 2010, 14:54
I have tested 3257, and I have no such issue.
make sure you use the latest version and that ffdshow is loaded for H.264
Hi thanks for reply.

I just tried ffdshow_rev3259_20100211_sse_icl11 and the problem is still there. Please not that you have to select "ffmpeg-mt" in ffdshow as the h264 decoder and play a h264 video file (mkv), in order to reproduce the problem I mentioned.

Thanks again.

tal.aloni
11th February 2010, 15:15
PetitDragon,
I did select ffmpeg-mt,
In which revision the problem starts?

you can find older revisions here:
http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1

tal.aloni
11th February 2010, 15:19
Good question, I don't remember exactly but I would describe it more as garbled output I think.

Which GPU?
Which Renderer?
Have you tested multiple files?
Do you have the same issues when using MPC-HC DXVA decoder?

Guys, anybody else still have problems with skipping that are not present in MPC-HC DXVA Decoder?

Tal

PetitDragon
11th February 2010, 15:36
PetitDragon,
I did select ffmpeg-mt,
In which revision the problem starts?

you can find older revisions here:
http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1
Hi tal.aloni,

After install, reinstal many times, rev3247 is the last revision that works ffmpeg-mt and custom profiles loading together for me.

My player is Media Player Classic Home Cinema x86 (latest revition).

Thanks for your help.

VipZ
11th February 2010, 15:39
@ Tal, thanks for the awesome work :)

Seeking seems perfect now, I had one MPC-HC crash on immediate seek while opening file, but I cant reproduce, so don't think it's an issue.

rsd78
11th February 2010, 16:20
Which GPU?
Which Renderer?
Have you tested multiple files?
Do you have the same issues when using MPC-HC DXVA decoder?

Guys, anybody else still have problems with skipping that are not present in MPC-HC DXVA Decoder?

Tal

Sorry for not providing more info earlier:

Win 7 x32, ATI 2600xt. Playback under Windows Media Center (so I believe that is EVR), and using Haali.. I tested 2-3 different 1080p mkvs and all exhibited the same issue. This happens regardless of whether the subtitles are actually displayed currently or not, but doesn't happen if I enable DXVA but don't enable subtitles (i.e. Overlay).

I don't have mpc-hc on that machine, but can test later tonight.

Keiyakusha
11th February 2010, 16:22
Is it possible to configure h264 lossless encoding settings to get exactly the same result as gives x264 cli with "--crf 0 --preset ultrafast"?

RNiK
11th February 2010, 16:40
So as mentioned above, FFDshow project was stoped in 2006 and continued by FFDshow-Tryouts since the... But when I tried to download the last version from http://ffdshow-tryout.sourceforge.net/download.php this is what I found: 2008-12-21 Beta 6 has been released! yet FFDShow MPEG-4 Video Decoder seems newer: 2010-01-09Beta6 is the latest official stable release. But development still continues and builds are available here:
http://sourceforge.net/projects/ffdshow-tryout/is a new beta going to be released soon since it's been over a year from last beta?+1 for her34 request.

Really guys, ffdshow tryouts official homepage linking a 14 months old version is just bad communication. :(
Beta 6 requirements ignore at all both Windows 7 than all Microsoft 64-bit O.S.
In the FAQ (http://ffdshow-tryout.sourceforge.net/wiki/faq:releases) you can read:
What is the difference between official releases and SVN builds?
SVN builds are “bleeding edge” which means they contain the latest features, updates, and - unfortunately - bugs. They are usually released a few times per week. Official releases are - simply put - “based” on these SVN builds. When an acceptable feature and stability level is reached during development, one SVN version is “destined” to become the next official release.So you are telling us that in the last 14 months were not developed features/updates stable enough to become "official"?? :confused:

tal.aloni
11th February 2010, 17:03
After install, reinstal many times, rev3247 is the last revision that works ffmpeg-mt and custom profiles loading together for me.

Thanks for the effort,
are you saying that 3247 load custom profiles, and 3248 does not?

because nothing even remotely related has been committed in 3248.

Tal

tal.aloni
11th February 2010, 17:14
but doesn't happen if I enable DXVA but don't enable subtitles (i.e. Overlay).

oh, I see. (no need to check MPC-HC DXVA decoder then)
DXVA Surface overlay does have additional demands that can cause garbled output, especially for older CPUs. (which CPU do you use?)

do you have those problems only on skip, or also on regular playback?

p.s.
this may be solved for you when DXVA 2.0 substreams will be implemented, as some of the load will be handled then by the GPU.

rsd78
11th February 2010, 17:16
oh, I see. (no need to check MPC-HC DXVA decoder then)
DXVA Surface overlay does have additional demands that can cause garbled output, especially for older CPUs. (which CPU do you use?)

do you have those problems only on skip, or also on regular playback?

p.s.
this may be solved for you when DXVA 2.0 substreams will be implemented, as some of the load will be handled then by the GPU.

Thanks Tal.

Actually my cpu is relatively beefy (e8400 at stock speeds). I have plenty of ram (4gb). The system doesn't have any issue using software decoding.

The problems only manifest after a skip or ff/rew, regular playback is completely fine.

STaRGaZeR
11th February 2010, 18:14
With r3259 I get almost perfect playback using DXVA, no problems whatsoever on seeking. The little problem: when the end of a VC-1 movie is reached the player crashes with an error in ffdshow.ax . Also there are some things that I miss in the DXVA decoder:

- The usual "Show / hide filters" tab.
- "Info & CPU" to actually show something.
- The "Set interlace flag in output media type" option. Is this even possible with DXVA, or it's always present? Even if that's true, can it be forced to bob or weave?
- Is faster seeking possible? With some Blu-ray movies like Pirates of the Caribbean it can take up to 5 seconds to seek to certain places. Seeking in this movie is also slow with software decoding, but with DXVA is generally much worse.

Great work tal!

VipZ
11th February 2010, 18:36
@ Tal

I have found some issues with seeking with rev 3259, but not sure if ffdshow is at fault.

Haali MKV + MPCHC DXVA + Subs ticked : No issue
Haali MKV + ffdshow DXVA + Subs ticked : No issue
Haali MKV + ffdshow DXVA + Subs unticked : Possible crash
Haali MKV + MPCHC DXVA + Subs unticked : No issue
MPCHC MKV + MPCHC DXVA +Subs ticked: No issue
MPCHC MKV + ffdshow DXVA +Subs ticked: No issue
MPCHC MKV + ffdshow DXVA +Subs unticked: No issue
MPCHC MKV + MPCHC DXVA +Subs unticked: No issue

Subs where done via MPCHC not ffdshow DXVA

If you need me to try get any more info on this let me know.

Thanks

PetitDragon
11th February 2010, 18:49
Thanks for the effort,
are you saying that 3247 load custom profiles, and 3248 does not?

because nothing even remotely related has been committed in 3248.

Tal
Hi ta,

I always followed the releases in the page www.xvidvideo.ru/ffdshow-tryouts-project-x86-x64/ before, and rev3247 is the last working revision. I just tried the releases in www.mediafire.com/?sharekey=3...e79d7d0540e1e1 you provided, and the last working revision for me is rev3248.

Sorry for confusion

DMD
11th February 2010, 19:11
You should have only one video decoder in graph:
...
Disable MPC-HC internal MPEG-2 decoder, add FFDShow as external filter and setup it as prefered.

I followed your advice, but the forced subtitles do not activate.

http://www.allfreeportal.com/imghost/thumbs/829581Graph con solo ffdshowdecoder.png ('http://www.allfreeportal.com/imghost/images/829581Graph con solo ffdshowdecoder.png')

http://www.allfreeportal.com/imghost/thumbs/413131Screenshot ffdshow decoder.png ('http://www.allfreeportal.com/imghost/images/413131Screenshot ffdshow decoder.png')

Leak
11th February 2010, 20:17
I followed your advice, but the forced subtitles do not activate.
Do you have "Accept embedded subtitles" on the "Subtitles" and "Enabled" on the "VobSub" subpage checked?

That's the only settings I can think of that could affect subtitle display...

np: Laura Veirs - I Can See Your Tracks (July Flame)

DMD
11th February 2010, 20:28
Do you have "Accept embedded subtitles" on the "Subtitles" and "Enabled" on the "VobSub" subpage checked?

That's the only settings I can think of that could affect subtitle display...

np: Laura Veirs - I Can See Your Tracks (July Flame)
I enabled this setting, maybe something wrong?

http://www.allfreeportal.com/imghost/images/983207Sccreenshot 001.png (http://allfreeportal.com)

Thanks

onomatopellan
11th February 2010, 20:34
The Vobsub under 'Subtitles' has to been enabled.

DMD
11th February 2010, 20:40
The Vobsub under 'Subtitles' has to been enabled.
Is correct?

Thanks

http://www.allfreeportal.com/imghost/images/50244Sccreenshot 003.png (http://allfreeportal.com)

tal.aloni
11th February 2010, 21:33
VipZ,
unfortunately, that's not enough info, I didn't encounter similar problem.

The first thing to do would be to see if another player triggers the same crash, then we will know if it's related to ffdshow or not.

Tal

tal.aloni
11th February 2010, 21:35
PetitDragon,
thanks for clarifying,
You're using Windows 7, right?

tal.aloni
11th February 2010, 21:45
are official builds, like the last one from 2008, not being released anymore?

as you all can see, the recent additions to the trunk are still not stable enough to release an 'official' build.

p.s.
maybe releasing major beta versions (beta 5, beta 6) is not the best approach, because it requires extra effort on each release, and maybe it would be wiser to just mark revisions as 'stable', and promote them at the project main page.

I think 3184 is the revision I would promote there right now.

(I've used 3154 for a while, and it's very stable, no major changes were committed up to 3184, DXVA has been added with 3185)

VipZ
11th February 2010, 21:57
Tal, I will do a bit more digging and report back if I find anything that I can easily reproduce.

Thanks

DMD
11th February 2010, 22:36
You should have only one video decoder in graph:

Disable MPC-HC internal MPEG-2 decoder, add FFDShow as external filter and setup it as prefered.

Excuse that version of ffdshow are you using? :confused:

clsid
11th February 2010, 23:01
as you all can see, the recent additions to the trunk are still not stable enough to release an 'official' build.

p.s.
maybe releasing major beta versions (beta 5, beta 6) is not the best approach, because it requires extra effort on each release, and maybe it would be wiser to just mark revisions as 'stable', and promote them at the project main page.

I think 3184 is the revision I would promote there right now.

(I've used 3154 for a while, and it's very stable, no major changes were committed up to 3184, DXVA has been added with 3185)
I propose releasing 3154 as beta 7. That revision is pretty stable. There also already is an existing build for that on SF.net that we can re-use.

onomatopellan
11th February 2010, 23:04
Excuse that version of ffdshow are you using? :confused:
This is the latest
http://xvidvideo.ru/ffdshow-tryouts-project-x86-x64/ffdshow-tryouts-project-svn-3259-x86-x64.html

DMD
11th February 2010, 23:05
This is the latest
http://xvidvideo.ru/ffdshow-tryouts-project-x86-x64/ffdshow-tryouts-project-svn-3259-x86-x64.html
sse_cl11?

onomatopellan
11th February 2010, 23:31
sse_cl11?
No. I always use x86 or x64.

rsd78
12th February 2010, 00:38
Thanks Tal.

Actually my cpu is relatively beefy (e8400 at stock speeds). I have plenty of ram (4gb). The system doesn't have any issue using software decoding.

The problems only manifest after a skip or ff/rew, regular playback is completely fine.

Tal,

Let me correct myself, as I previously stated that I didn't get garbled screens when using DXVA but no overlay. I do get garbled screens with just regular DXVA.

HOWEVER (now using rev 3259) I noticed that ff/rew did not cause garbled screens for me, however using Media Center's 30 second skip is what still causes it. I believe earlier revisions ff/rew caused it as well, but now it seems fixed. But definitely 30 second skip causes it, which would explain why those using mpc-hc do not see this.

I hope this helps!

hoborg
12th February 2010, 08:13
Excuse that version of ffdshow are you using? :confused:

Always the latest from http://xvidvideo.ru/, not "sse icl11" x86 builds.

albain
12th February 2010, 09:22
Hi ta,

I always followed the releases in the page www.xvidvideo.ru/ffdshow-tryouts-project-x86-x64/ before, and rev3247 is the last working revision. I just tried the releases in www.mediafire.com/?sharekey=3...e79d7d0540e1e1 you provided, and the last working revision for me is rev3248.

Sorry for confusion

Hi PetitDragon,

can you test a recent build (one faulty build) and in Haali's settings uncheck output->"use custom media type" (or something like that)

Thanks

DMD
12th February 2010, 09:41
Always the latest from http://xvidvideo.ru/, not "sse icl11" x86 builds.
I do not understand why the release ffdshow_rev2099_20080903_clsid_sse_icl10 works without problems.

MatLz
12th February 2010, 09:53
Hi!
I have another problem:
I can't use FFDShow() in avisynth scripts anymore.

Depending the input colorspace:
yv12: chaotic frames order, sometimes green display
rgb: choatic frames order, sometimes black display
yuy2: only green display

In all cases, the filtering isn't applied.(on the rares frames correctly displayed)

tal.aloni
12th February 2010, 10:40
MatLz,
please test old revisions, and see where it starts.
http://www.mediafire.com/?sharekey=3f33c77c2cf9ce25ab1eab3e9fa335ca95e79d7d0540e1e1

MatLz
12th February 2010, 10:57
@tal.aloni
I'm on a phone and it seems mediafire uses some strange javascripts or things I know nothing about...to rerume, I can't download at mediafire.
Is possible you upload at sendspace?

tal.aloni
12th February 2010, 11:07
MatLz,
you can narrow it down using the builds in sourceforge:
https://sourceforge.net/projects/ffdshow-tryout/files/

I'll upload more builds if necessary once I have a smaller range.

Tal

nalooti
12th February 2010, 11:45
Hi,
I'm totally new in this FFDShow paradigm. All I see is that in W7x64 I can read most if not all types of video with wmp even mkv files (though I didn't tested inside 7 media center yet).

So excuse me if I'm in the wrong place to ask these but I'd like to know:
1/ some good reasons to use other codecs than those already existing on w7
2/ Where to begin to know what is FFDShow and how to use it

Please note that I'm used to install just the minimum required softs/codecs on my system (I'm against codec packs but want just what I need) and only if the existing ones are not enough to play what I have with good quality.

many thanks
nalooti

tal.aloni
12th February 2010, 13:16
1/ some good reasons to use other codecs than those already existing on w7

the selling points of ffdshow (besides support for wide variety of formats) are performance and post-processing.

audio post-processing include: volume normalization, equalization, and up / down mixing.

video post-processing include software deinterlacing.

those are my favorite features, there is so much more inside.
for example: I can use the same equalization for all my audio formats (AC3 / DTS / FLAC), because ffdshow supports all of them.

MatLz
12th February 2010, 13:18
I'm also in trouble with Sourceforge...don't laugh at me but your link shutdown my phone!:D
Anyway, after downloading at other places, I can say it's between 3178 and 3207.

tal.aloni
12th February 2010, 14:05
MatLz,
let's narrow it down more, here are 3200 and 3205:

http://iknowu.net/files/public/ffdshow/ffdshow_rev3200_20100112_xhmikosr.exe

http://iknowu.net/files/public/ffdshow/ffdshow_rev3205_20100117_xhmikosr.exe


also, can you post a sample avisynth script?

MatLz
12th February 2010, 14:20
Are you psychic?...no I think simply competent:
3200 does work, 3205 doesn't.

Scripts are just like that:
Source
ffdshow(preset="mypreset")

tal.aloni
12th February 2010, 14:56
Scripts are just like that:
Source
ffdshow(preset="mypreset")

I'm getting "script error, there is no function names 'ffdshow' "

am I missing a plugin?

MatLz
12th February 2010, 15:01
I'm getting "script error, there is no function names 'ffdshow' "

am I missing a plugin?

You need ffavisynth.dll and ffavisynth.avsi in the avisynth plugins directory.

tal.aloni
12th February 2010, 15:23
OK,
I don't have any problem with 3259.
please test it if you haven't already.

http://iknowu.net/files/public/ffdshow/ffdshow_rev3259_20100211_xhmikosr.exe

otherwise it may be related to the script itself, or other filters.

how do you use ffdshow()? from within ffdshow?
or from VirtualDub \ etc?

DMD
12th February 2010, 15:36
You should have only one video decoder in graph:

Disable MPC-HC internal MPEG-2 decoder, add FFDShow as external filter and setup it as prefered.
I noticed that with the latest version ffdshow_rev3200_20100112_clsid_icl10 or ffdshow_rev3256_20100208_sse_icl11, pin Subpicture the DVD Navigator is connected directly to pin In Text of ffdshow.
In this situation do not play forced subtitles.
http://www.allfreeportal.com/imghost/thumbs/541970filtergraph ffdshow2099 (forced subtitle).png ('http://www.allfreeportal.com/imghost/images/541970filtergraph ffdshow2099 (forced subtitle).png')

http://www.allfreeportal.com/imghost/thumbs/32710303.png ('http://www.allfreeportal.com/imghost/images/32710303.png')




Using version ffdshow_rev2099_20080903_clsid_sse_icl10 pin Subpicture the DVD Navigator is connected to pin Subpicture MPEG-2 Video Decoder.
In this situation will play normally forced subtitles
http://www.allfreeportal.com/imghost/thumbs/626filtergraph ffdshow3256 (no forced subtitle).png ('http://www.allfreeportal.com/imghost/images/626filtergraph ffdshow3256 (no forced subtitle).png')

Same result by doing the decoding directly to ffdshow
http://www.allfreeportal.com/imghost/thumbs/22543902.png ('http://www.allfreeportal.com/imghost/images/22543902.png')


http://www.allfreeportal.com/imghost/thumbs/52514301.png ('http://www.allfreeportal.com/imghost/images/52514301.png')

MatLz
12th February 2010, 15:42
3259 doesn't work for me....it happens with all imput plugins and with/without other filterings.

Take a look here:
http://forum.doom9.org/showthread.php?t=150365&highlight=.vdf%3F
I explain (in a bad english:D) how I do.

tal.aloni
12th February 2010, 15:50
so, you're using the script in another program,
like avisynth, virtualdub etc...

MatLz
12th February 2010, 16:00
so, you're using the script in another program,
like avisynth, virtualdub etc...

Yes. It's for ponctual using of ffdshow filters like noise, vertical lines... So if it is just a problem with my system, I can just install 3200 when I will need it...

tal.aloni
12th February 2010, 16:05
Yes. It's for ponctual using of ffdshow filters like noise, vertical lines... So if it is just a problem with my system, I can just install 3200 when I will need it...

I've made some changes to the code recently, so it makes sense that a problem exist, however, I still can't recreate it,
perhaps there is some setting that you forgot to mention that triggers it.

so far:
I've created a preset that include OSD / deinterlacing / perspective correction.

I've made a file contains:

DirectShowSource("C:\1.mkv")
ffdshow(preset="deint")


I'm viewing this file in virtualdub / avisynth without a problem.

tal.aloni
12th February 2010, 16:18
MatLz,
Maybe the dll in the plugin directory needs to be updated?

Keiyakusha
12th February 2010, 16:24
Hi!
I have another problem:
I can't use FFDShow() in avisynth scripts anymore.

Depending the input colorspace:
yv12: chaotic frames order, sometimes green display
rgb: choatic frames order, sometimes black display
yuy2: only green display

In all cases, the filtering isn't applied.(on the rares frames correctly displayed)

Not sure if I'm doing it right, but I'm getting the same problem with this script:
DirectShowSource("123.mp4")
ffdshow(preset="VirtualDub")

Where mp4 contains h264 stream and decoded by CoreAVC
and preset contains only one filter Levels, only one half, mode original, automatic.

MatLz
12th February 2010, 16:25
Maybe the dll in the plugin directory needs to be updated?I don't know but it's ffdshow itself wich install ffavisynth dll and avsi afaik!

I uploaded one of my preset, don't know If it helps...
Www.sendspace.com/file/2qrgqq

tal.aloni
12th February 2010, 16:34
MatLz,

I was still using 3200 :facepalm:
I'm seeing it now, I'm on it.

MatLz
12th February 2010, 16:43
MatLz,

I was still using 3200 :facepalm:
I'm seeing it now, I'm on it.

No problem...but :D!
;)

@Keiyakusha
That means you use ffdshow two consécutive times?

Keiyakusha
12th February 2010, 20:08
@Keiyakusha
That means you use ffdshow two consécutive times?

No, once...

MatLz
12th February 2010, 20:30
No, once...So that means the using of coreavc completely disable the ffdshow video decoder configuration...? I didn't know that.

Keiyakusha
12th February 2010, 20:39
So that means the using of coreavc completely disable the ffdshow video decoder configuration...? I didn't know that.
Sorry, I don't really understand what you talking about.
Currently I'm using ffdshow for everything except h264. I just want to use its postprocessing in avs script but its not working, exactly as you described.

tal.aloni
12th February 2010, 20:41
MatLz,
ffavisynth should be back working in rev. 3260

Thanks for reporting the bug!
Tal

MatLz
12th February 2010, 20:50
MatLz,
ffavisynth should be back working in rev. 3260

Thanks for reporting the bug!
Tal

Thanks for fixing the bug so quickly!

@Keiyakusha
What happen if you put your script in vdub? Do the ffdshow icon appear in the icon notification zone?

Keiyakusha
12th February 2010, 21:24
What happen if you put your script in vdub? Do the ffdshow icon appear in the icon notification zone?
As I say... I see exactly the same as you described in your post, which I quoted. No, there is no icon. I'm not using ffdshow for decoding so I don't see why it should be there.
EDIT: If I will use ffdshow for decoding, there is no point to use the plugin since I can set profile that will run only with virtual dub and enable there whatever I want.

tal.aloni
12th February 2010, 21:40
Guys,
build 3261 will allocate 17 DX buffers instead of 16 (XP) / 22 (Vista / Windows 7). (H.264 specs require 17).

if anybody is having a problem with it, let me know.
I assume that if nobody will have problem, MPC-HC will follow.

rsd78
12th February 2010, 22:02
Guys,
build 3261 will allocate 17 DX buffers instead of 16 (XP) / 22 (Vista / Windows 7). (H.264 specs require 17).

if anybody is having a problem with it, let me know.
I assume that if nobody will have problem, MPC-HC will follow.

Does this offer any functional benefit for ffdshow dxva, or more a compliance to the h.264 spec?

Keiyakusha
12th February 2010, 22:11
ffavisynth should be back working in rev. 3260

It works! :thanks:

tal.aloni
12th February 2010, 23:09
Does this offer any functional benefit for ffdshow dxva, or more a compliance to the h.264 spec?

mostly compliance, some exotic low-resolution streams might need 17 surfaces.

it might give a tiny performance gain for Vista / Windows 7.

Edit:
for XP, I had to revert to 16 DX surfaces, VMR9 is limited to 16.

jhb50
13th February 2010, 06:58
I have an ASUS 1201HA z520 atom with Intel GMA500, and XP Home SP3 installed. I am simply trying to utilize the GMA DXVA capabilities and play MP4 AVC videos under XP.

Cyberlink's POWERDVD9 does this correctly. Videos that took 100% cpu with COREAVC only take 25% using POWERDVD9, however there is no subtitle support and being hearing impaired, I would like to use a player that does support them.

Using ffdshow DXVA 3265, I get a BSOD with MPC-HC (any version thru 1260) and VMR9. The same thing happens using the standalone MPC Video Decoder 1249 in MPC-HC 1260, Zoom or WMP. The STOP message references the Intel GMA500 driver, but POWERDVD works correctly with its H264/AVC decoder.

I have tried to use the Cyberlink H264/AVC decoder from PDVD9 with Zoom but I receive an error that the class is not registered, and have not been able to get around that.

So are ffdshow DXVA and the MPC Video Decoder providing incorrect data to the Intel GMA 500 driver or is there a driver bug that Cyberlink has found a work around to.

I have provided more info in Bug report #233 and #277 to MPC-HC project, and would be happy to provide more info here to get this problem fixed.

Seems to me if Cyberlink can successfully use the GMA500 DXVA capabilities under XP, that MPC and ffdshow should be able to do the same. At a minimum they should not cause a BSOD!

Thanks for any info you can provide me on this.

tal.aloni
13th February 2010, 10:08
jhb50,
I have personally went through all of the DXVA code imported from MPC-HC, all is according to standard, I haven't encountered any quirk or a hack that may cause a BSOD.
it's probably a driver issue, however, it's odd that powerdvd works and ffdshow / MPC-HC does not.

have you tried other renderers beside VMR-9? (try overlay mixer / VMR-7 / not-renderless)

are you using the lastet version of the GPU driver?

p.s.
on second thought, there are a few things that we might be doing differently than cyberlink:
1. we always allocate the maximum number of buffers, optimal decoder would allocate only the necessary amount.
2. we try to negotiate DXVA 2.0 under XP, without checking the OS version.

however, those are not supposed to cause BSOD.

jhb50
13th February 2010, 19:03
Thanks for the response.

Yes, I have used both the 1012 XP driver that came with the system and the 1018 XP driver from Intel.

I will go and test each of the available renderers now and report back.

My understanding was that XP only supported DXVA1 and indeed DXVA Checker reports that as per the attached. Also Cyberlink reports DXVA1 support as per the CL1 attachment. Could this be the problem? It also appears that the MPC-VD believes that DXVA should work because it does not revert to DXVA OFF mode so something is going wrong between that point and the BSOD.

OK, tested with Overlay, VMR7 and 9 windowed and renderless..all BSOD'd. With Haali renderer it loaded MPC VD but it reported "Not Using DXVA".

I also note that the MPC-VD pin info reports "Pin: (C) 2007 Google Inc. v06.24.2007". How did Google get involved in this?

I'm also wondering if there is any way for me to get the PDVD9 X264 filter to load in order to test a different DXVA filter with MPC-HC. Currently it reverts to the next highest merit VD, and if I disable them all but Cyberlink, no VD gets loaded.
Zoom reports CL 264 Filter "Class not registered" and reverts to the next highest merit. I don't know how to get around this or of any other DXVA VD that I can try. Any ideas?

Peuj
13th February 2010, 19:30
Hi,

I have something wrong in my ffdshow presets that makes crash MPC-HC. I use ffdshow rev3265 and MPC-HC rev1650.
I've created 2 presets "TV HD" and "TV SD". When I watch an HD movie (ex:http://playlist.yahoo.com/makeplaylist.dll?sid=101880217&sdm=web&pt=rd), MPC-HC crashes.

This happens only with my 2 presets and the H.264/AVC ffdshow codec.
If I select the default preset and the H.264/AVC ffdshow codec, I don't have the problem.
If I select my 2 presets and an external codec (and with ffdshow "Raw video" activated), I don't have the problem.

Here's the settings exported with ffdshow http://www.megaupload.com/?d=M8H22LUH
If somebody could look at it explain me what's wrong.

Thanks

tal.aloni
13th February 2010, 20:39
Peug,
during debug, I found out that the problem is that ffdshow and ffdshow DXVA share the active preset key.

I'm looking into it.

Peuj
13th February 2010, 20:51
Peug,
during debug, I found out that the problem is that ffdshow and ffdshow DXVA share the active preset key.

I'm looking into it.

Thanks :)

tal.aloni
13th February 2010, 21:20
fixed for rev. 3266,
this should have a big effect on many settings.

deets
13th February 2010, 21:56
hmm playback of any BBC HD is not stretched to 16:9, just stays 4:3. works in all other decoders?

and any chance live streams will be looked at :)

tal.aloni
13th February 2010, 23:49
jhb50,
Windows XP uses DXVA 1.0,
Windows Vista / Windows 7 uses DXVA 2.0

(I pointed out that ffdshow negotiate DXVA 2.0 under windows XP, because it's possible (not confirmed) that you can get DXVA 2.0 to work under XP with VC-1 & EVR)

the BSOD might be also caused by an additional filter in the chain, or additional software that is installed in your system.

(a rogue filter would explain why powerdvd is not effected)

there is not a lot that I can do for you at this point,
debug log will require some effort, the only other option you have if you want to make ffdshow work, is to initiate a debug session, and see in which line of code triggers the BSOD.

however, this might require a lot of effort on your behalf.

p.s.
I know that it's possible to use cyberlink video decoder from other directshow based players, like media player classic.
(it used to take over my system when I tested powerdvd)

Keiyakusha
14th February 2010, 00:37
Windows 7 uses DXVA 2.0

Afaik win7 also uses DXVA-HD which is DXVA 3.0 or something like that. Is it somehow usefull for ffdshow? Does it actually works on non-directx11 videocards?

albain
14th February 2010, 10:30
Hi,

some updates on bluray subtitles : it is now working and it was more difficult than I thought because both ffmpeg and mplayer PGS implentation are buggy.

I'll send my code to MPC team (or I'll fix it by myself if I have time)


It also took some time because I would like to be able to use the scaler used by vobsub : gaussian, bilinear,... scalers

It will let us have the best rendering quality as any other player.


Also, some extra work was needed to adapt the position and size of the subtitles if one enables the resize filter or enable subs zooming.

tal.aloni
14th February 2010, 10:40
wow, sounds promising!

on another note,
I realized yesterday that the reason our previous DXVA post processing methods (blend / full post-processing) were causing garbled output, is because of the bug fixed in rev. 3258 (some mechanism that dropped input samples)

what's happening with the bugfix applied, is that the playback is simply slowing down. it doesn't really change anything though, full post-processing is still not fast enough, blend might be, but not for all settings.

Sebastiii
14th February 2010, 11:31
Great news :)

Thx you guys ;)
Seb.

albain
14th February 2010, 11:38
Afaik win7 also uses DXVA-HD which is DXVA 3.0 or something like that. Is it somehow usefull for ffdshow? Does it actually works on non-directx11 videocards?

Don't know but it would be a replacement solution to the resize filter

tal.aloni
14th February 2010, 11:55
I've made a quick fix to the problem reported earlier (VC-1 crash at the end of the stream).

right now, up to 11 of the last frames in VC-1 may be truncated when using DXVA, I hope to implement a thorough fix that will also include more efficient frame ordering when I have the time.

fastplayer
14th February 2010, 15:03
We decided to release Beta 7. It is based on the pretty stable revision 3154. DXVA decoding is not part of it because it has just been added recently and there might pop up some unexpected issues.
Changelog and download link are available at the homepage:
http://ffdshow-tryout.sourceforge.net/

STaRGaZeR
14th February 2010, 16:40
I've made a quick fix to the problem reported earlier (VC-1 crash at the end of the stream).

right now, up to 11 of the last frames in VC-1 may be truncated when using DXVA, I hope to implement a thorough fix that will also include more efficient frame ordering when I have the time.

There's another "issue" with VC-1 videos. If the video is 1080p with a 2,35 aspect ratio the very first frames have the black bars green. It doesn't happen in all videos, but where it happens it happens all the time.

tal.aloni
14th February 2010, 17:26
There's another "issue" with VC-1 videos. If the video is 1080p with a 2,35 aspect ratio the very first frames have the black bars green.

STaRGaZeR, please report how each of the decoders behave regarding the issue: wmv9, libavcodec and DXVA.

dehati_paul
14th February 2010, 18:10
First of all thanks to tal and albain for enabling DXVA support in ffdshow.

I am curious to know the difference between DXVA implementation between MPC-HC and ffdshow (apart from post-processing capability). Till now I have been using MPC-HC standalone filters for video decoding the DXVA videos, but if DXVA support in ffdshow is more advanced (or more comprehensive) then I will switch to ffdshow. Also curious about the DXVA-HD (DXVA 3.0??) support in Windows 7.

Please let me know.

rsd78
14th February 2010, 18:26
I am getting an odd bug with ffdshow dxva. Note, I only tried this with one or two files but it was reproducible.

Basically if I fast forward for a while, say for 60 minutes of a movie it would eventually freeze/crash (no blue screen just everything non-responsive). This was with overlay, but didn't matter if subtitles were being displayed or not.

I believe the version of ffdshow I currently have installed is 3265.

This happens within Win 7 Media Center. This does not happen with using ffdshow software decoding (tested with the same file). I'm running x32, e8400, ati 2600xt, etc.

I can try with other files, but in general I noticed a little more bugginess with dxva enabled. For example, in Media Center if I press the info button, it brings up the typical info overlay screen. But then if I press the back button on my remote, it causes MC to crash. Again this doesn't happen with software decoding. I realize not many here are necessarily using Media Center for playback but thought I"d mention what I've noticed.

I can try to get more info if needed, just let me know. Thanks

tal.aloni
14th February 2010, 19:32
dehati_paul,
since both projects are open source, any advancement that is needed and can be adopted will be (by both sides),
the only advancement ffdshow will have over MPC-HC for the foreseeable future is to have OSD / subtitles without being tied to a specific renderer (MPC-HC).


rsd78,
DXVA will always be somewhat less stable, as it relies on the renderer, the driver and the underlying hardware.
freezes (deadlocks) are usually caused by the decoder waiting for DX surfaces to become available while not freeing old surfaces. I wouldn't be surprised if some bugs are still present in that code.
crashes should not occur, and are easier to eliminate, when you can reproduce them repeatedly, let me know.

some crashes has already been fixed in latest revisions.

Tal

Keiyakusha
14th February 2010, 22:04
Is it theoretically possible to see DXVA for mpeg4-asp and wmv (not VC1) or this is works only through CUDA? (Since relatively new nvidia GPUs supports that)

STaRGaZeR
14th February 2010, 22:18
STaRGaZeR, please report how each of the decoders behave regarding the issue: wmv9, libavcodec and DXVA.

wmv9 --> No issues.
libavcodec --> No issues.
DXVA --> As reported. Example: http://img237.imageshack.us/img237/8721/yyyb.png. Just after opening "The Mummy" BD, remuxed to MKV. Another example is "Matrix Reloaded", playing its m2ts files directly.

tal.aloni
15th February 2010, 00:20
Is it theoretically possible to see DXVA for mpeg4-asp and wmv

no, the API is only for MPEG2 / H.264 and VC-1


Stargazer, doesn't look like much can be done, but it wouldn't hurt if you post a sample.

STaRGaZeR
15th February 2010, 01:19
http://www.megaupload.com/?d=UQFK5B2T (22MB)

MPC's DXVA decoder does the same BTW.

nalooti
15th February 2010, 09:34
the selling points of ffdshow (besides support for wide variety of formats) are performance and post-processing.

audio post-processing include: volume normalization, equalization, and up / down mixing.

video post-processing include software deinterlacing.

those are my favorite features, there is so much more inside.
for example: I can use the same equalization for all my audio formats (AC3 / DTS / FLAC), because ffdshow supports all of them.
thanks you for your reply;

when you say post processing, do you mean that all those effects as normalization, equalization, etc. are applied while you're viewing the videos ? then how much cpu you use (I mean the FFDShow process takes how many percent in your task manager ?) ?

I can't read VOB files in my 7 Media Center while they can be viewed in Windows 7 in the explorer by wmp (and outside of 7MC). Is this something, FFDShow could fix ?

nalooti

tal.aloni
15th February 2010, 11:32
do you mean that all those effects as normalization, equalization, etc. are applied while you're viewing the videos ?


exactly.

then how much cpu you use?

that depends, audio post processing is not very significant, video post processing can be.


I can't read VOB files in my 7 Media Center while they can be viewed in Windows 7 in the explorer by wmp (and outside of 7MC). Is this something, FFDShow could fix ?


no, you need mpeg2 splitter, I think haali media splitter might help. I'm not a windows 7 expert though.

Tal

arestarh
15th February 2010, 12:58
tal.aloni
Hello!
I'm again about problems with translation.
I can't open in translation mode dialogs:
http://i044.radikal.ru/0912/8c/4f224226244at.jpg (http://radikal.ru/F/i044.radikal.ru/0912/8c/4f224226244a.png.html)
And even I manually edit file of localization(add necessary strings), *Add* and *Reset* buttons in both dialogs and also dialog *Use ffdshow only in* is not appeared in GUI:
http://i056.radikal.ru/1001/8f/c5f527d8a0e5t.jpg (http://radikal.ru/F/i056.radikal.ru/1001/8f/c5f527d8a0e5.png.html)
simply, I can't translate this elements...

And about section of Subtitles in configuration dialog.
I can't translate this dialog:
http://s001.radikal.ru/i195/1001/5a/a492876a1c84t.jpg (http://radikal.ru/F/s001.radikal.ru/i195/1001/5a/a492876a1c84.png.html)

Edit:
Also, I can't translate following header(language file contains string "configuration=translation_of_this_header"):
http://i081.radikal.ru/1001/8b/9c44bb460e6dt.jpg (http://radikal.ru/F/i081.radikal.ru/1001/8b/9c44bb460e6d.png.html)

ikarad
15th February 2010, 15:09
Hi,

some updates on bluray subtitles : it is now working and it was more difficult than I thought because both ffmpeg and mplayer PGS implentation are buggy.

I'll send my code to MPC team (or I'll fix it by myself if I have time)


It also took some time because I would like to be able to use the scaler used by vobsub : gaussian, bilinear,... scalers

It will let us have the best rendering quality as any other player.


Also, some extra work was needed to adapt the position and size of the subtitles if one enables the resize filter or enable subs zooming.
How soon do you expect to release this upgrade?

tal.aloni
15th February 2010, 18:29
arestarh,
I don't know much about translations, and I have other priorities ATM, perhaps in the future albain will have the will and time to help.

tal.aloni
15th February 2010, 20:30
Please also report it here --> http://forums.nvidia.com/index.php?showforum=33
It's possible that the bug will be fixed.

bug reported:

http://forums.nvidia.com/index.php?showtopic=159813

hopefully they will fix it, and XP users of nvidia GPU can enjoy surface overlay with latest drivers.

DeathWolf
16th February 2010, 04:07
Would it be possible to get an option to ignore stream AR, at least for AVC?

It appears some people are muxing with a wrong stream AR and a good container AR, and that ffdshow gives precedence to the stream AR versus the dshow ar.(Now, don't try this with haali's demuxer, it's perverted and rewrites the stream without the ar, which is not the case of other mkv demuxers)

rsd78
16th February 2010, 04:28
dehati_paul,
since both projects are open source, any advancement that is needed and can be adopted will be (by both sides),
the only advancement ffdshow will have over MPC-HC for the foreseeable future is to have OSD / subtitles without being tied to a specific renderer (MPC-HC).


rsd78,
DXVA will always be somewhat less stable, as it relies on the renderer, the driver and the underlying hardware.
freezes (deadlocks) are usually caused by the decoder waiting for DX surfaces to become available while not freeing old surfaces. I wouldn't be surprised if some bugs are still present in that code.
crashes should not occur, and are easier to eliminate, when you can reproduce them repeatedly, let me know.

some crashes has already been fixed in latest revisions.

Tal

Latest svn (3268) seems to have fixed the crash when pressing the info button in Media Center than pressing it again or Back.

However the one major issue I've been getting with dxva is when fast forwarding in Media Center. I basically just let it ff for a little bit and it eventually crashes Media Center, sometimes 20-30 minutes into a movie and sometimes after fast forwarding 1hr or more. Seems to be pretty consistent, and doesn't happen with software decoding. Happened with the 3 or so files I just tried (all mkv, some 720 and some 1080p). I don't know if it matters, but this is with playing files streamed from another machine.

I'm guessing people using mpc-hc aren't seeing this?

Let me know if there are any logs I can gather or check and I will get them for you.

Thanks again.

Gleb Egorych
16th February 2010, 10:58
bug reported:

http://forums.nvidia.com/index.php?showtopic=159813
Thanks.

Sebastiii
16th February 2010, 12:30
bug reported:

http://forums.nvidia.com/index.php?showtopic=159813

hopefully they will fix it, and XP users of nvidia GPU can enjoy surface overlay with latest drivers.

Thanks too :)

fastplayer
16th February 2010, 12:40
bug reported:

http://forums.nvidia.com/index.php?showtopic=159813

hopefully they will fix it, and XP users of nvidia GPU can enjoy surface overlay with latest drivers.
Never ever has a bug been fixed that was reported on their forum.
Try this:
http://www.nvidia.com/object/driverqualityassurance.html

Oh, and you better remove your email address from that post. ;)

Gleb Egorych
16th February 2010, 13:06
Never ever has a bug been fixed that was reported on their forum.
I reported a bug on the forum some time ago and it was fixed in 196.21.

tal.aloni
16th February 2010, 14:18
Try this:
http://www.nvidia.com/object/driverqualityassurance.html

Done.

Starks
16th February 2010, 23:16
Is there any way for ffdshow to display subtitles at resolutions higher than the video resolution?

For example, if I wanted to watch a 480p video on a 1080p screen or monitor, fullscreen will display the subtitles at a rather fuzzy 480p, instead of scaling to match the fullscreen resolution and aspect ratio of the video.

Kado
17th February 2010, 01:23
resize the image with ffdshow to 1080 then render the subtitles.

Keiyakusha
17th February 2010, 01:24
Put resize before subtitles maybe?
(edit: oops, I'm slow)

jhb50
17th February 2010, 01:34
jhb50,
the BSOD might be also caused by an additional filter in the chain, or additional software that is installed in your system.

(a rogue filter would explain why powerdvd is not effected)

the only other option you have if you want to make ffdshow work, is to initiate a debug session, and see in which line of code triggers the BSOD.



Hi Tal: Thanks for your help on this.

I'm still trying to pin this down. I have restored this system with its recovery disks, and installed MPC-HT alone, so there are no rogue filters or other conflicts.

My question is do MPC-HT "H264/AVC (DXVA) internal filter, the external MPC-Video Decoder and ffdshow(DXVA) all use the same code to implement DXVA, because all 3 of them create a BSOD?

If they all use different code then I have to assume the problem lies elsewhere like with the driver even though POWER-DVD9 works fine, but if they do share code then the problem may still be within this common code and the way it interfaces to the GMA500.

Please advise. Thanks.

It sure would be nice to find another DXVA decoder to try. Anyone know of one?
==========================================================
EDIT: NEW INFO!

After more digging I found the ArcSoft Video Decoder included in HDPack. I installed it and used it as an External Filter in MPC-HC and it plays all my videos with subtitles and DXVA and no BSOD's. My tiny 1.3 ghz netbook with HDMI output can now play my 1280x720 video without dropped frames or BSOD's at 25% cpu.
1920x1080 video plays with blocky artifacts at about the same CPU load, so the bottle neck is not with the CPU.

Since I now have 2 video decoder filters that work correctly with DXVA (PDVD9 and Acsoft), I can now say without qualification that MPC and ffdshow are using common code and they have a bug that creates a BSOD when used to play AVC video with DXVA enabled with the Intel GMA500.

I will update my MPC Bug report #277 accordingly.

tal.aloni
17th February 2010, 10:05
jhb50,
as I said earlier, MPC-HC (both internal and stand alone) and ffdshow uses a very similar code.

I pointed earlier two things that the cyberlink / arcsoft decoder might be doing differently.
if you have the time, and want to try and get ffdshow working, I can make some beta builds, and instruct you how to log debug messages, and eventually we will be able to pin down the line of code that triggers the crash.

Tal

Edit:
you can start by downloading DebugView,
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

set it up to automatically log to file (File > Log To File),
then go to start menu > programs > ffdshow > Video Decoder Configuration
under "Info & CPU", enable "Output strings to debugger".

start using the DXVA decoder, and after the computer crash and restarts, use pastebin.com to send me the log.

rsd78
17th February 2010, 16:16
jhb50,
as I said earlier, MPC-HC (both internal and stand alone) and ffdshow uses a very similar code.

I pointed earlier two things that the cyberlink / arcsoft decoder might be doing differently.
if you have the time, and want to try and get ffdshow working, I can make some beta builds, and instruct you how to log debug messages, and eventually we will be able to pin down the line of code that triggers the crash.

Tal

Edit:
you can start by downloading DebugView,
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

set it up to automatically log to file (File > Log To File),
then go to start menu > programs > ffdshow > Video Decoder Configuration
under "Info & CPU", enable "Output strings to debugger".

start using the DXVA decoder, and after the computer crash and restarts, use pastebin.com to send me the log.

Sorry to bug you Tal again, but I wasn't sure if you saw my post about ff/rew in Media center always crashing with ffdshow dxva.

Would the above logging be useful to send to you for my particular problem as well? It doesn't crash the whole computer, but just Media Center. Thanks!

tal.aloni
17th February 2010, 17:20
rsd78,
thanks for reminding me, I intended to test media center and see if I can recreate this issue, but forgot about it...
I'll test it later today.

Edit: indeed there is a crash, but look at the cause:

Problem signature:
Problem Event Name: BEX64
Application Name: ehshell.exe
Application Version: 6.1.7600.16385
Application Timestamp: 4a5bd053
Fault Module Name: splitter.x64.ax

rsd78
17th February 2010, 19:11
rsd78,
thanks for reminding me, I intended to test media center and see if I can recreate this issue, but forgot about it...
I'll test it later today.

Edit: indeed there is a crash, but look at the cause:

Problem signature:
Problem Event Name: BEX64
Application Name: ehshell.exe
Application Version: 6.1.7600.16385
Application Timestamp: 4a5bd053
Fault Module Name: splitter.x64.ax

Good catch. I'm assuming you're using the mpc splitter?

I was using Haali myself, but can test out mpc.

tal.aloni
17th February 2010, 19:19
splitter.x64.ax = haali media splitter.

rsd78
17th February 2010, 19:20
splitter.x64.ax = haali media splitter.

Ahh ok thanks, I will experiment with the other one then.

rsd78
17th February 2010, 20:02
Using Gabest seems to fix most of the ff/rew crashes (still had one random one with labavcodec being the faulty module). Also this fixed the issue of garbled frames after 30 second skip. However now I'm not getting the context menu pop up from Media Control to happen it seems. But at least this is progress!

rsd78
17th February 2010, 20:24
@Albain or Tal (sorry if this belongs more in the Media Control forum), but I am seeing an issue with Gabest and ffdshow dxva and Media Control within Media Center.

I can't get the context menu to pop up automatically and it does not consistently find all the embedded subtitles (I can turn off/on subs overall but doesn't usually let me select between specific languages). Thanks!

EDIT: Did more testing and using Gabest with regular ffdshow works fine with MediaControl (Context Menu pop up appears, I can see all the embedded subtitles fine and can select between them). So I'm not sure if it's a ffdshow dxva issue, mediacontrol, or Gabest. Would love for this to be worked out if there is truly something to fix, as Gabest seemed to resolve all garbling/seeking issues I had with dxva while using Haali. Note using Haali + ffdshow (dxva or regular) + mediacontrol I don't have this issue.

Thanks again for all your work.

Inventive Software
17th February 2010, 23:08
I've been out of the loop a while, so I do apologise. What limitations are there with the DXVA decoder, currently?

XhmikosR
18th February 2010, 01:17
@devs: rev3269 has broken wmv playback for me, using wmv9 as video decoder and libavcodec as audio decoder, causing mpc-hc to crash. With rev3268 every wmv video plays fines.

cbemoore
18th February 2010, 01:49
@devs: rev3269 has broken wmv playback for me, using wmv9 as video decoder and libavcodec as audio decoder, causing mpc-hc to crash. With rev3268 every wmv video plays fines.

I noticed that some of the FFDShow-specific code has been removed in rev3269. Not sure if it was intentional, or if it was a merge error?

jhb50
18th February 2010, 08:53
debugger".

start using the DXVA decoder, and after the computer crash and restarts, use pastebin.com to send me the log.

Hi Tal:

Happy to help pin this down. Here is first dump...too small for pastebin!

00000000 0.00000000 [3472] TffdshowBase::Constructor
00000001 0.17777427 [3472] TffdshowDecVideo::Constructor
00000002 0.20727970 [3472] TffdshowDecVideoOutputPin::Constructor
00000003 0.20758197 [3472] TffdshowDecVideoDXVA constructor
00000004 0.20790295 [3472] TffdshowDec::GetPages
00000005 17.29215240 [3472] TffdshowDecVideo::Destructor
00000006 17.29269028 [3472] TffdshowDecVideoOutputPin::Destructor

I also have BSOD dump files if you want them.
John

tal.aloni
18th February 2010, 10:26
John,
something is very different than what I'm familiar with.
the first 4 lines match my experience, but then a different path is taken and the output pin disconnects.

this is way before DXVA 1.0 / 2.0 negotiation and buffer allocation.

I would suggest taking another log while using GraphStudio
( http://blog.monogram.sk/janos/2009/06/14/monogram-graphstudio-0320/ )

it would also help to visually identify all the filters involved, and verify that the crash comes before starting playback (during the connection stage).

XhmikosR
18th February 2010, 11:50
@devs: rev3269 has broken wmv playback for me, using wmv9 as video decoder and libavcodec as audio decoder, causing mpc-hc to crash. With rev3268 every wmv video plays fines.

After some more testing I found out that reverting the changes made in rev3269 in src/ffmpeg/libavcodec/fft.c fixes the problems; no more crashes.
So either by reverting fft.c or by using #define CONFIG_MDCT 1 in src/ffmpeg/config.h the problem is fixed.

fastplayer
18th February 2010, 11:59
http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2010-February/027462.html
Maybe it is required to add a parameter like --enable-mdct when building libavcodec?
Just guessing here... :D

XhmikosR
18th February 2010, 12:01
Look above :p I was just editing my post while you were posting.

fastplayer
18th February 2010, 12:03
Look above :p I was just editing my post while you were posting.
At least, I wasn't too far off with my "educated" guess :)

CiNcH
18th February 2010, 14:29
Coming back to the discussion about ATi not supporting VLD/bitstream-level decoding for MPEG-2... well... it actually does, starting with UVD2 (HD 4000 and 5000 series).

One can enable the DXVA profile 'DXVA2_ModeMPEG2_VLD' within registry or with the help of DXVAChecker (key 'VForceUVDMPEG2VLD'). It may not function correctly (green picture and system crash was reported). So it seems that ATi simply decided to disable the feature by default instead of debugging their driver...

XhmikosR
18th February 2010, 17:34
Compilation in rev3272 is broken.

http://pastie.org/private/zvhaikhexwfqa53its5vng

alexins
18th February 2010, 19:03
Compilation in rev3272 is broken.

http://pastie.org/private/zvhaikhexwfqa53its5vng

I confirm.

jhb50
18th February 2010, 19:18
OK. I can use ffdshow to play the file without DXVA and see the MPC-HC filters that are used. I assume that the same set would be used with ffdshow(DXVA). Is that what you mean by visually identifying them?

I can also use Graphedt to see the same thing.

I can see the MPC-HC playback window open and then the screen goes black and then the BSOD.

I will try all 3 and get back to you later today.

I'll do an ffdshow log as well so we can see the path when it works without DXVA.

uncertainty
18th February 2010, 23:14
BTW Ive been doing some benchmarks with rev3268 and no longer notice any major difference (cpu wise) between ffmpeg-mt and libavcodec for h264 material. In the past I would see a good 10-20% improvement on my duo-core with ffmpeg-mt.

If both are roughly equal now, cpu-wise, which provides a higher quality image if either?

thanks

tal.aloni
18th February 2010, 23:46
jhb50:
sorry, I was a bit unclear:
I meant start graphedit / graphstudio,
start DebugView,
load the file,
now, according to previous logs, I assume that the computer will crash.

if it doesn't, make sure you don't have an additinal filter that shouldn't be there, and start the playback.


uncertainty:
all H.264 decoders should have the same PQ.

DeathTheSheep
19th February 2010, 08:58
I may have reported this in the past, but I'll do so again.

Delay doesn't accept negative values. I don't think it's a good idea to default the fields to "only accepting numbers." A far better default would be to selectively disable the negative on fields where it would make no sense. There are other fields that have had this obvious problem before, such as some encoder options that actually default to negative values (like I frame quantizer shifts) but don't let the user input one!

jhb50
19th February 2010, 09:54
I would suggest taking another log while using GraphStudio
( http://blog.monogram.sk/janos/2009/06/14/monogram-graphstudio-0320/ )

it would also help to visually identify all the filters involved, and verify that the crash comes before starting playback (during the connection stage).

Hi Tal. The log is on pastebin "JHB50 GMA500"

I did 3 tests: Video#1.mp4 with Haali, Video #1.mp4 with MPC splitter and Video #2.mkv with MPC splitter. (see attached .grf's - rename from .zip)

The logs from all 3 are identical except for the "NAL" size, so I only pasted one.

Whats next?

John

tal.aloni
19th February 2010, 10:23
Delay doesn't accept negative values.

if you want negative video delay, you can just apply positive audio delay.

negative delay is impossible when it comes to playback of live broadcast (DVB-T playback for example).

tal.aloni
19th February 2010, 10:32
jhb50,
when does it crash? during the connection stage, before you start playback, right?

Thanks

p.s.
this is the log I located:
http://pastebin.com/m5d7e2973

it appears ffdshow is not doing anything during the crash, but instead waiting for an external DirectShow event.
can you disable all AC3 decoders and post another log with no audio decoders?

rsd78
19th February 2010, 15:13
@Albain or Tal (sorry if this belongs more in the Media Control forum), but I am seeing an issue with Gabest and ffdshow dxva and Media Control within Media Center.

I can't get the context menu to pop up automatically and it does not consistently find all the embedded subtitles (I can turn off/on subs overall but doesn't usually let me select between specific languages). Thanks!

EDIT: Did more testing and using Gabest with regular ffdshow works fine with MediaControl (Context Menu pop up appears, I can see all the embedded subtitles fine and can select between them). So I'm not sure if it's a ffdshow dxva issue, mediacontrol, or Gabest. Would love for this to be worked out if there is truly something to fix, as Gabest seemed to resolve all garbling/seeking issues I had with dxva while using Haali. Note using Haali + ffdshow (dxva or regular) + mediacontrol I don't have this issue.

Thanks again for all your work.

Sorry to bump this, but I was hoping one of the great devs could take a look at this? At first I thought maybe it is a splitter/media control issue, but it seems odd that it works fine with ffdshow software decoding but not with ffdshow dxva.

Or if anyone else can confirm what I am seeing (ffdshow dxva + gabest splitter + media control) that'd be great as well.
Thanks again.

jhb50
19th February 2010, 17:57
jhb50,
when does it crash? during the connection stage, before you start playback, right?

Thanks

p.s.
this is the log I located:
http://pastebin.com/m5d7e2973

it appears ffdshow is not doing anything during the crash, but instead waiting for an external DirectShow event.
can you disable all AC3 decoders and post another log with no audio decoders?

Hi Tal:

The graph is created, I saved it and attached it to the last message. Here is the .xml output from Graphedt. I then press the play Icon, the ActiveMovie window opens, then the screen goes black , and then the BSOD. I assume this means that all the connections have been made and playback has or is starting.

- <GRAPH version="1.0">
- <FILTER ID="Default_DirectSound_Device" clsid="{79376820-07D0-11CF-A24D-0020AFD79767}">
<PARAM name="data" value="30003000300030003000300030003000300030003000200000000000000000000000000000000000" />
</FILTER>
- <FILTER ID="Video_Renderer" clsid="{B87BEB7B-8D29-423F-AE4D-6582C10175AC}">
<PARAM name="data" value="30003000300030003000300030003000300030003000200088010000 ...0000000" />
</FILTER>
<FILTER ID="MPC___MPA_Decoder_Filter" clsid="{3D446B6F-71DE-4437-BE15-8CE47174340F}" />
<FILTER ID="ffdshow_DXVA_Video_Decoder" clsid="{0B0EFF97-C750-462C-9488-B10E7D87F1A6}" />
- <FILTER ID="AAC_Source_0" clsid="{55DA30FC-F16B-49FC-BAA5-AE59FC65F82D}">
<PARAM name="src" value="F:\All Test Videos\A-Big Buck Bunny 1080porig.AAC.mp4.mp4" />
</FILTER>
<connect direct="yes" src="AAC_Source_0" srcpin="Video" dest="ffdshow_DXVA_Video_Decoder" destpin="In" />
<connect direct="yes" src="AAC_Source_0" srcpin="Audio" dest="MPC___MPA_Decoder_Filter" destpin="In" />
<connect direct="yes" src="MPC___MPA_Decoder_Filter" srcpin="Out" dest="Default_DirectSound_Device" destpin="Audio Input pin (rendered)" />
<connect direct="yes" src="ffdshow_DXVA_Video_Decoder" srcpin="Out" dest="Video_Renderer" destpin="VMR Input0" />
</GRAPH>

You have the correct log, and I will now run with just the video chain and post the log as "JHB50 GMA500X"
Here is the xml for that Graph.
<GRAPH version="1.0">
<FILTER ID="Video_Renderer" clsid="{B87BEB7B-8D29-423F-AE4D-6582C10175AC}">
<PARAM name="data" value="3000300030003000300030003000300030003000300020008801000000...00000"/>
</FILTER>
<FILTER ID="ffdshow_DXVA_Video_Decoder" clsid="{0B0EFF97-C750-462C-9488-B10E7D87F1A6}">
</FILTER>
<FILTER ID="AAC_Source_0" clsid="{55DA30FC-F16B-49FC-BAA5-AE59FC65F82D}">
<PARAM name="src" value="F:\All Test Videos\A-Big Buck Bunny 1080porig.AAC.mp4.mp4"/>
</FILTER>
<connect direct="yes" src="AAC_Source_0" srcpin="Video" dest="ffdshow_DXVA_Video_Decoder" destpin="In"/>
<connect direct="yes" src="ffdshow_DXVA_Video_Decoder" srcpin="Out" dest="Video_Renderer" destpin="VMR Input0"/>
</GRAPH>

FOR COMPARISON PURPOSES I have also posted the log for video only using ffdshow which does play correctly. Perhaps a comparison of the two will yield a clue. They are quite different! "JHB50 GMA500Y"


John

shh
19th February 2010, 18:46
Hi,
I'm using ffdshow rev3267 from this site:
http://www.free-codecs.com/FFDshow_download.htm 2010-02-13-mmx
and get a strange framerate with my NTSC-MPEG-2s.

I can open at least two NTSC VOBs via DirectShow in AVISynth which report 10000000/333667 = 29.97000002997fps instead of the correct 30000/1001 = 29.97002997fps
script1:
DirectShowSource("tenchi.vob")
info()

If I index the MPGs with DGIndex and open the D2V in AviSynth I receive proper 30000/1001:
script2:
LoadPlugin("....\plugins\DGDecode.dll")
MPEG2Source("tenchi.d2v")
info()

I'm not quite sure whoose fault this is, but I think ffdshow is reporting wrong fps for the NTSC-files. MPC reports just 29.97fps.
Can anybody confirm this issue, or am I doing something wrong?
Graphedit shows, that ffdshow is the only filter that get's active on opening the VOBs.
Or is it perhaps the MPEG2-Splitter (Win7), that gives the wrong rate?

Regards...

tal.aloni
19th February 2010, 18:53
John,
1. please paste hyperlinks to pastebin,
now I have to wait for google to index "JHB50 GMA500Y" :(

(you can just copy the link that you are redirected to after pasting the content at pastebin)

2. so you're saying that the computer does not crash during DXVA playback if audio is not involved?
if so, it means the crash has nothing to do with the DXVA implementation itself,
try using ffdshow audio decoder and also try unchecking "Decoder option > enable jitter correction" for the audio decoder, is it still crash?

jhb50
19th February 2010, 21:14
John,
1. please paste hyperlinks to pastebin,
now I have to wait for google to index "JHB50 GMA500Y" :(

(you can just copy the link that you are redirected to after pasting the content at pastebin)

2. so you're saying that the computer does not crash during DXVA playback if audio is not involved?
if so, it means the crash has nothing to do with the DXVA implementation itself,
try using ffdshow audio decoder and also try unchecking "Decoder option > enable jitter correction" for the audio decoder, is it still crash?

No Tal, the "ffdshow DXVA Video Decoder" always crashes, with audio (JHB50 GMA500) http://pastebin.com/m5d7e2973, or without Audio (JHB50 GMA500 X) repasted as http://www.pastebin.com/m241b3dc6.

The "ffdshow video decoder" which does not try to use DXVA does not crash (JHB GMA500Y) repasted as http://www.pastebin.com/m2e42dece which definitely shows that it is the DXVA implementation that fails.

The BSOD screen also has the GMA500 driver DLL identified as the point of failure so "ffdshow DXVA' has certainly tried to use it.

albain
20th February 2010, 01:08
Hi,

Too much work these days, but I finally found some time to finish the bluray subtitles implementation

Here is a test build (32 bits) (http://damienbt.free.fr/ffdshow_rev3254_20100207_dbt_bitstream_trial_beta2.exe)

Configuration : enable subtitles, and enable vobsub (cosmetic to be done). Indeed, the scaler that is used is the same as vobsubs. Then play a m2ts file (I made all my tests with graphstudio)

Status :

Working with m2ts files (from blurays). Tried with MPC splitter
BR subs in MKV : not tested, a mediatype should probably be added if this does not work
Subtitles are positioned correctly even if the resize filter is enabled
The subtitles should also be placed correctly if you enabled zooming
Zooming with smooting modes that are working : none, gaussian swscaler (full does not work yet, didn't tried the others)
The subtitles edge look a little yellow, don't know why yet
Subtitles with overlapping timestamps should be handled correctly
Performances should be checked : I used SSE optimizations but the PGS parser may require some adjustements

DigitalDeviant
20th February 2010, 05:23
Hi,

Too much work these days, but I finally found some time to finish the bluray subtitles implementation

Here is a test build (32 bits) (http://damienbt.free.fr/ffdshow_rev3254_20100207_dbt_bitstream_trial_beta2.exe)

Configuration : enable subtitles, and enable vobsub (cosmetic to be done). Indeed, the scaler that is used is the same as vobsubs. Then play a m2ts file (I made all my tests with graphstudio)

Status :

Working with m2ts files (from blurays). Tried with MPC splitter
BR subs in MKV : not tested, a mediatype should probably be added if this does not work
Subtitles are positioned correctly even if the resize filter is enabled
The subtitles should also be placed correctly if you enabled zooming
Zooming with smooting modes that are working : none, gaussian swscaler (full does not work yet, didn't tried the others)
The subtitles edge look a little yellow, don't know why yet
Subtitles with overlapping timestamps should be handled correctly
Performances should be checked : I used SSE optimizations but the PGS parser may require some adjustements


It's not working here in MPC-HC. No subtitles show.

Edit: Is ffdshow_rev3254_20100207_dbt_bitstream_trial_beta2.exe the correct file?

albain
20th February 2010, 09:05
Sorry, wrong link (I was really tired)

Here is the right one :
http://damienbt.free.fr/ffdshow_rev3268_20100220_dbt_bluraysubs.exe

Sebastiii
20th February 2010, 11:18
Thx you :)

I'll try it today of course :)
Seb.

khagaroth
20th February 2010, 11:36
Can someone commit an update for Czech translation. It's hanging on the tracker for almost a month already and no one seems to bother with it even though the patches around it were already applied.

albain
20th February 2010, 11:55
I have adapted the approximative scaler to RGB32 for PGS subtitles.

There are still the bilinear and the full scaler to be adpated now.

I'll test another build when all the scalers will work and with the modifications on the interface

tal.aloni
20th February 2010, 12:34
Hi albain,
nice progress!

I've tested briefly, I think there are some colorspace issues with YV12, because It didn't look so good combined with DXVA.

It also crashed once when I changed the subtitle stream in the middle of playback.

I'll have time to take a look at the code later this week.

Thanks!

Eragon4ever
20th February 2010, 12:40
Can someone commit an update for Czech translation. It's hanging on the tracker for almost a month already and no one seems to bother with it even though the patches around it were already applied.
Commited at r3275.

albain
20th February 2010, 15:31
Hi albain,
nice progress!

I've tested briefly, I think there are some colorspace issues with YV12, because It didn't look so good combined with DXVA.

It also crashed once when I changed the subtitle stream in the middle of playback.

I'll have time to take a look at the code later this week.

Thanks!

Hi Tal,

I have committed my changes : all the scalers work except bilinear, don't know why, it is not very important

I have renamed the Subtitles > Vobsub section to "BluRay & DVD"

The color problem you got may be due to an inversion of red and blue channels. There was a bug in the existing code, I fixed it. Maybe this is the cause.

You can grab the last revision if you want to work on it.

I haven't work yet on the subtitles stream switching issue (crash).

Thanks

Damien

XhmikosR
20th February 2010, 16:07
Can someone update the ICL project files? I've done it for my needs but it should be in the SVN. BTW, albain I noticed that you removed the post build event of registering ffdshow.ax. I hope you keep it that way.

tal.aloni
20th February 2010, 16:45
albain I noticed that you removed the post build event of registering ffdshow.ax.

albain, please do not keep it that way.

XhmikosR
20th February 2010, 16:47
I knew you wouldn't agree, maybe I shouldn't mention it and no one would notice it... who knows :p

albain
20th February 2010, 17:43
albain, please do not keep it that way.

This was not wanted. I always remove that option for my personal use

DigitalDeviant
20th February 2010, 17:45
Hi Tal,

I have committed my changes : all the scalers work except bilinear, don't know why, it is not very important

I have renamed the Subtitles > Vobsub section to "BluRay & DVD"

The color problem you got may be due to an inversion of red and blue channels. There was a bug in the existing code, I fixed it. Maybe this is the cause.

You can grab the last revision if you want to work on it.

I haven't work yet on the subtitles stream switching issue (crash).

Thanks

Damien

I have issues with ffmpeg-mt decoding. The file loads in MPC-HC but the file does not play. All I get is a still black frame. The time elapsed stays the same but I can seek around but the frame is always a still black frame. Libavcodec works OK.

I haven't tested it much due to lack of time but this was something I encountered on the first test with multiple simultaneous subs.

http://img534.imageshack.us/img534/2066/wb1.th.png (http://img534.imageshack.us/i/wb1.png/)

albain
20th February 2010, 18:43
I have issues with ffmpeg-mt decoding. The file loads in MPC-HC but the file does not play. All I get is a still black frame. The time elapsed stays the same but I can seek around but the frame is always a still black frame. Libavcodec works OK.

I haven't tested it much due to lack of time but this was something I encountered on the first test with multiple simultaneous subs.

http://img534.imageshack.us/img534/2066/wb1.th.png (http://img534.imageshack.us/i/wb1.png/)

Please post your sample then, I don't have any simultaneous subs

@Tal : I didn't experience crash while switching subtitle streams

DigitalDeviant
21st February 2010, 01:17
Please post your sample then, I don't have any simultaneous subs

http://www.mediafire.com/?zuydynjgcki

I can't seem to get a screenshot of what it's supposed to look like but the dialog is supposed to be at the bottom and the kanji title translation is supposed to be at the top.

Edit: ffmpeg-mt seems to be working in the recent build on xvidvideo.ru.

David602
21st February 2010, 07:50
Any plans to add FFDSHOW DXVA support for the Clarksdale architecture? Intel created an SDK to make it easier to work with.

Sebastiii
21st February 2010, 10:12
Hi,

I have tested subs in DXVA and also in non DXVA with FFDshow of course lol.

I have strange issue :
I use MPC Mpeg Splitter for .m2ts and MPC Matroska Filter for MKV.

For .m2ts :
The graph connect subtitle output from MPC to Text input FFDshow for m2ts with sub inside and also m2ts with no sub inside (i can verify if sub is here with mediainfo) -> but even with m2ts with sub, i can't see it and selected it :( (even if i seek the movie)

For .mkv :
FFDshow find sub (.srt or other and play it) i can select sub if we have multi file in directory but the issue that it didn't choose always the right sub) for example, i have a sample.mkv with sub inside and other files with sample2.srt toto.srt etc. -> FFDshow select sample2.srt (in this case). (DirectVobsub select only the match name).
Also when right clic on FFDshow didn't show embedded sub and to make it appear, i must seek in video and it appear.

I hope that i can explain good lol.

It's a great work :) but for now i can't see subs arf !.

Ps : To try to select, enable/disable sub, i use MRCremoteplus, i can map this option with MCE remote, i can manage enable/disable but no selection of sub, i think that i didn't find where is configured, i've try to find to show it in OSD screen but no success lol.

Also i've try with in mediaportal but, i think it was necessary to put an remote API like MCERemoteplus in mediaportal code to make it work.

Cheers,
Seb.

Sebastiii
21st February 2010, 10:16
http://www.mediafire.com/?zuydynjgcki

I can't seem to get a screenshot of what it's supposed to look like but the dialog is supposed to be at the bottom and the kanji title translation is supposed to be at the top.

Edit: ffmpeg-mt seems to be working in the recent build on xvidvideo.ru.

I have try the sample and i have put it in my test directory with many .srt.

FFDshow select sample2.srt (not cool lol) and i can't see embedded sub :(.

Seb.

Sebastiii
21st February 2010, 11:52
Hi again lol,


So this is log from debugview if it help :)

Trace from .m2ts with mutliple sub inside (no selection possible and no sub renderer)
M2TS_0001_Multisubs(not working even seek) (http://sebinternet.free.fr/M2TS_0001_Multisubs(not_working)log.rar)

Trace from .mkv with mutliple sub inside, sub only appear when i seek the video (when i go to right clic on FFDshow icon, i have the choice after but didn't render too.
MKV_[Eng-Jap] Art Of Fighting OVA (Eng-Esp sub)(Seek) (http://sebinternet.free.fr/MKV_[Eng-Jap] Art Of Fighting OVA (Eng-Esp sub)(Seek).rar)

Trace from .mkv with only 1 sub inside, sub only appear when i seek the video and disable and enable sub (when i go to right clic on FFDshow icon), i have the choice after but didn't render too.
MKV_sample(Appear after many seek and disable and enable sub) (http://sebinternet.free.fr/MKV_sample(Appear after many seek and disable and enable sub).rar)

I know that it for Bluray but i made all test posible to see why.

Anther issue also is if the OSD is enable, when i play [Eng-Jap] Art Of Fighting OVA (Eng-Esp sub) Graphstudio crash.

Cheers,
Seb.

thuan
21st February 2010, 12:39
Convolver filter question: I tried the convolver filter inside ffdshow with impulse files here http://sjeng.org/foobar2000.html . Specifically I tried the Urei 1178 Impulse file inside the tube amps package. With Auto Adjust enabled I have very low volume compared to nearly the same level of volume as original file with foobar convolver component. When I disabled Auto Adjust I have to set the Level bar to maximum to have nearly normal volume. Is this by design?

Tested with ffdshow 3277 x86 build on xvidvideo.ru and foobar 1.0 with latest convolver component. Source audio spec: 48000Hz, 16bit, Stereo; the Urei impulse file: 44100Hz, 16bit, mono. I have tried to resample my source to 44100Hz before sending it over the convolver filter inside ffdshow, same thing happens.

ikarad
21st February 2010, 16:01
I try ffdshow 3277 and It crash when i select blu-ray subtitle with ffdshow.

Sebastiii
21st February 2010, 16:15
Hi,

I have another issue (not for subs).
I'll try to explain :
I have a sample with VC1 and DTS-HD 5.1.
If i use ffdshow (no DXVA) in decoder VC1 enable (Libavcodec) or in Post Process mode -> the sample play fine if i start from beginning, if i seek it no video but the sound is OK.
If i start it @ anytime (the time that i stop it for example @ 1 min) the screen is black (Audio OK) for video comes i must REW or FORWARD (2x).

I have try to setup only MPC video to decode it and all working OK.
If i put FFDSHOW in postprocess after MPCVideo, i have the issue.

I don't know why and i don't how to help you to find the issue (a little debugview ?).

I have check with clean GNU registry key and it's the same.
It's maybe related but i have also this :
If i use codec inside FFDshow so i use for filter resize etc. and setup libavcodec in codec section when i seek video (MPG MKV AVI etc.) it takes some second to play video (it's like a pause) -> This issue, i've it for a long time.

My bad solution is to disable libavcodec and let windows to choose another directshow filter.

I think it's not normal lol
Cheers,
Seb.

Edit : In DXVA (FFDshow) it works good when i seek and when i start in anytime in the movie.
I think TAL you have fixed it in DXVA maybe something is equal to no DXVA.
I will post a sample but i must cut it lol

Edit2 : I have made another test and when i use libavcodec, the video appear but shuttered (in MP) so the PB appear only in Post-Process and by my test in VC1. Maybe it's related to MP.

onomatopellan
21st February 2010, 16:57
Testing rev3277, it crash a lot when selecting the subtitles in MPC-HC. (log (http://onomatopellan.pastebin.com/m3992087))
When it doesn't crash it shows subs incorrectly, these shold be completly white for example:

http://i48.tinypic.com/24qjz15.png

Using m2ts, mkv with PGS are not detected.

BTW, how can I test using GraphStudio? Which splitter/source filter I need? Haali doesn't work with PGS subs.

albain
21st February 2010, 19:12
For Haali this is just a matter of media type.

If you have a sample somewhere I will be able to add the support

About this strange white edge around subtitles, which colorspace is used in output of ffdshow ?

I made all my tests in RGB32, so there may be issues in YUV mode (used by DXVA for example).

Graphstudio is equal (for me) to MPCHC : I use MPC mpeg splitter (standalone filter), then ffdshow then EVR

EDIT : I can confirm, bluray subtitles won't appear with YUV colorspace. While I fix it, you can disable YV12, NV12, and all YUV colorspace in ffdshow output section.

I don't understand why these colorspaces are enabled by default as they give lower quality than any RGB colorspace

onomatopellan
21st February 2010, 19:41
Yes I'm using ffdshow DXVA so the output is NV12.

I don't have bluray so I've made an m2ts with tsMuxeR from this sample:
http://ftp.touchpointdata.com/PaperHeart_Sample.mkv

Sebastiii
21st February 2010, 19:45
I have found that some .m2ts didn't work and other work with MPC Mpeg Splitter.
For test i have try with MPC-HC and mediaportal to see.
So i think this is a splitter issue :
Link to test sample :

1- Sample_SUB_OK.m2ts (http://sebinternet.free.fr/Sample_SUB_OK.m2ts)
2- sample_multisub_new.m2ts (http://sebinternet.free.fr/sample_multisub_new.m2ts)

I don't how to open ticket for this to MPC-HC dev.
Thx,
Seb.

Sebastiii
21st February 2010, 19:49
Yes I'm using ffdshow DXVA so the output is NV12.

I don't have bluray so I've made an m2ts with tsMuxeR from this sample:
http://ftp.touchpointdata.com/PaperHeart_Sample.mkv

Hi,

With your sample and with MPC-HC it didn't see subtitle.
With mediainfo sub is here.

I'm lost lol

onomatopellan
21st February 2010, 20:14
EDIT : I can confirm, bluray subtitles won't appear with YUV colorspace. While I fix it, you can disable YV12, NV12, and all YUV colorspace in ffdshow output section.

I don't understand why these colorspaces are enabled by default as they give lower quality than any RGB colorspace
you are right, now with rgb output ffdshow shows the subs correctly.

@Sebastiii: It's a sample from xbmc team I have used to extract the PGS subs and make a .m2ts sample, and in mpc-hc doesn't work yet. With last xbmc you should see the subs though.
EDIT: I think it's the same splitter but they fix something for accept mkv with PGS.http://trac.xbmc.org/ticket/8429

Sebastiii
21st February 2010, 20:18
Ok so it's splitter issue (MPC Mpeg splitter) and xbmc do you know what it using ?
Thx :)

Damien, do you see sub from the sample with MPC and RGB32 output ?

ikarad
21st February 2010, 21:05
For Haali this is just a matter of media type.

If you have a sample somewhere I will be able to add the support

About this strange white edge around subtitles, which colorspace is used in output of ffdshow ?

I made all my tests in RGB32, so there may be issues in YUV mode (used by DXVA for example).


I use YUY 2 and I have strange colors for subtitles

cyberbeing
21st February 2010, 22:28
I don't understand why these colorspaces are enabled by default as they give lower quality than any RGB colorspace

First, some things FFDshow needs to connect to may only accept something like YV12, YUY2, or NV12. Also keeping video in it's native color-space should always be the default unless the user explicitly forces a different colorspace.

Secondly, conversion to RGB takes a lot of additional processing power especially on 1080p video.

Dual-core Athlon X2 2.6Ghz using ffmpeg-mt for decoding 1080p h.264:
YV12 CPU Usage: 40-50% of both cores
RGB CPU Usage: 60-70% of both cores
RGB HQ CPU Usage: 70-80% of both cores

Dual-core Athlon X2 2.6Ghz using libavcodec for decoding 1080p h.264:
YV12 CPU Usage: 70-80% of single core
RGB CPU usage: >100% of single core (unplayable)
RGB HQ CPU usage: >100% of single core (unplayable)

hoborg
22nd February 2010, 09:39
Hi.
Anybody else have problems playing DVDs with rev 3281?
Buttons are not highlighted for me and there are crash in DVD menu.

albain
22nd February 2010, 11:40
Hi.
Anybody else have problems playing DVDs with rev 3281?
Buttons are not highlighted for me and there are crash in DVD menu.

This must be my fault, DVD (subs+menus) and bluray subs share some parts of code

I have brought some fixes in rev 3282 but I am not sure this will be anough

Can you tell me which colorspace do you have in output ? (mouse over ffdshow video icon)

hoborg
22nd February 2010, 11:52
This must be my fault, DVD (subs+menus) and bluray subs share some parts of code

I have brought some fixes in rev 3282 but I am not sure this will be anough

Can you tell me which colorspace do you have in output ? (mouse over ffdshow video icon)

YUY2 - i have here Intel(R) 82945G Express Chipset Family (i945G0)
RGB32,YV12,... have same issue

ikarad
22nd February 2010, 13:00
First, some things FFDshow needs to connect to may only accept something like YV12, YUY2, or NV12. Also keeping video in it's native color-space should always be the default unless the user explicitly forces a different colorspace.

Secondly, conversion to RGB takes a lot of additional processing power especially on 1080p video.

Dual-core Athlon X2 2.6Ghz using ffmpeg-mt for decoding 1080p h.264:
YV12 CPU Usage: 40-50% of both cores
RGB CPU Usage: 60-70% of both cores
RGB HQ CPU Usage: 70-80% of both cores

Dual-core Athlon X2 2.6Ghz using libavcodec for decoding 1080p h.264:
YV12 CPU Usage: 70-80% of single core
RGB CPU usage: >100% of single core (unplayable)
RGB HQ CPU usage: >100% of single core (unplayable)
And moreover, some filter like TIVTC or decomb works only with nv12 or YUY2 ant not RGB

DigitalDeviant
22nd February 2010, 13:06
And moreover, some filter like TIVTC or decomb works only with nv12 or YUY2 ant not RGB

What? I use TIVTC with RGB output every day. It works fine.

Edit: Clarification.

DigitalDeviant
22nd February 2010, 13:10
YUY2 - i have here Intel(R) 82945G Express Chipset Family (i945G0)
RGB32,YV12,... have same issue

Same problem here. Reverting to 3274 fixed it.

ikarad
22nd February 2010, 14:10
What? I use TIVTC with RGB output every day. It works fine.

Edit: Clarification.

Sorry, in fact, It's Telecide that doesn't work with rgb

For tivtc on the official page, the author speak about only the support of yv12 and yuy2.
http://web.missouri.edu/~kes25c/

albain
22nd February 2010, 19:08
Everything should be fixed in revision 3283 :

- DVD menus
- Bluray subs with YUV colorspaces
- MKV support for bluray subtitles

There is a bug in Haali splitter (or rather a support to be added) : the PGS subtitles don't have any media subtype in the output pin of Haali's. Don't tried with MPC matroska splitter

TODO/TOFIX :
- Bilinear scaling in RGB mode (only bluray subs may use this scaler)
- Bluray subtitles support from file (.sup)

onomatopellan
22nd February 2010, 20:21
Thanks albain. Now subs are shown correctly with ffdshow DXVA (subs are completly white on my sample), but MPC-HC still crash a lot when I select the subtitle of the .m2ts file. (with Haali and with Matroska internal filter)

albain
22nd February 2010, 22:22
Thanks albain. Now subs are shown correctly with ffdshow DXVA (subs are completly white on my sample), but MPC-HC still crash a lot when I select the subtitle of the .m2ts file. (with Haali and with Matroska internal filter)

In DXVA mode only ?

onomatopellan
22nd February 2010, 22:58
No, it crash with normal ffdshow too. If I pause the video in MPC-HC I can advance some frames with right arrow key but after that always crash. I think it crash in the frame where subtitles should appear.

Also I have no crash using the mpc-hc internal filters instead ffdshow.

STaRGaZeR
22nd February 2010, 23:29
Albain, I have problems with DVD subs using r3283:

http://thumbnails5.imagebam.com/6925/a2218e69247353.gif (http://www.imagebam.com/image/a2218e69247353)

These are supposed to be yellow without any transparency. Happens with RGB and YUV output.

ikarad
23rd February 2010, 09:34
Everything should be fixed in revision 3283 :

- DVD menus
- Bluray subs with YUV colorspaces
- MKV support for bluray subtitles

There is a bug in Haali splitter (or rather a support to be added) : the PGS subtitles don't have any media subtype in the output pin of Haali's. Don't tried with MPC matroska splitter

TODO/TOFIX :
- Bilinear scaling in RGB mode (only bluray subs may use this scaler)
- Bluray subtitles support from file (.sup)

With ffdshow 3283 there is many crashs

I give you an example in 7 parts (there are many problems with blu-rays subtitles with rev 3277 and the example that I give you show you the different problems (some subtitles are cut in the middle, some subtitles are not synchronized, some subtitles are not displayed), but with rev 3283 it's impossible to notice if these problems are corrected because there are too crashs)

part 1
http://www.zshare.net/info.html?72194780-3f3de5a523000d960412ca4e70f4959e
part2
http://www.zshare.net/info.html?72228704-870148d21c7371e7a2cb0c45e37239c1
part3
http://www.zshare.net/info.html?72228942-da539adec6856595c9fa215e89fcfdf2

part 4
http://www.zshare.net/info.html?72879609-e7005b47f97bd593cc1fac7d6620cda5

part 5
http://www.zshare.net/info.html?72894035-f4d916b0cbd3fbf999835142beff854c
part 6
http://www.zshare.net/info.html?72901975-036b32dfe47b4378533fe6974fb1237c

partie 7
http://www.zshare.net/info.html?72152693-cff6f6453a85c6f497a94c0fc61987f5

bugtracker
https://sourceforge.net/tracker/?func=detail&aid=2957087&group_id=173941&atid=867360

onomatopellan
23rd February 2010, 12:13
With ffdshow 3283 there is many crashs

I give you an example in 7 parts (there are many problems with blu-rays subtitles with rev 3277 and the example that I give you show you the different problems (some subtitles are cut in the middle, some subtitles are not synchronized, some subtitles are not displayed), but with rev 3283 it's impossible to notice if these problems are corrected because there are too crashs)

part 1
ikarad, that's not a sample, that's an entire movie! Get rid of those links ASAP or you will be in trouble.
you can make a 50Mb sample with tsMuxeR for example.

ikarad
23rd February 2010, 14:10
ikarad, that's not a sample, that's an entire movie! Get rid of those links ASAP or you will be in trouble.
you can make a 50Mb sample with tsMuxeR for example.

No it's not an entire movie. It's just a sample. I'm not stupid because I know that upload an entire movie is forbidden.
The movie is a 120 min duration.
The sample is 12 min duration. It's just a sample.

50 mb of the movie is just 20 seconds of the movie. It's just totaly useless. It's a blu-ray not a simple dvd or divx. One minute of blu-ray movie is nearly 300 mb, not 30 mb.

The time of the sample is 12 minutes because problems with subtitles appear between 8 minutes and 11 minutes.
If I use tsremux to cut just between 8 minutes and 11 minutes, subtitles are disappeared. To have subtitles with tsremux I must cut since the start of the movie.

onomatopellan
23rd February 2010, 14:45
oh, sorry in that case.

DigitalDeviant
23rd February 2010, 17:57
No it's not an entire movie. It's just a sample. I'm not stupid because I know that upload an entire movie is forbidden.
The movie is a 120 min duration.
The sample is 12 min duration. It's just a sample.

50 mb of the movie is just 20 seconds of the movie. It's just totaly useless. It's a blu-ray not a simple dvd or divx. One minute of blu-ray movie is nearly 300 mb, not 30 mb.

The time of the sample is 12 minutes because problems with subtitles appear between 8 minutes and 11 minutes.
If I use tsremux to cut just between 8 minutes and 11 minutes, subtitles are disappeared. To have subtitles with tsremux I must cut since the start of the movie.

I use Tsmuxer (from my MeGui install w/ a GUI) set for Blu-ray disc output to split BR from the middle of a file and the subs display fine.

albain
23rd February 2010, 19:04
I am downloading your sample.

Otherwise I have committed fixes today on DVD menus and subs

STaRGaZeR
23rd February 2010, 22:53
Otherwise I have committed fixes today on DVD menus and subs

Much better. But there's still some crap around the subs:

http://thumbnails6.imagebam.com/6938/cff36569375357.gif (http://www.imagebam.com/image/cff36569375357)

Kado
24th February 2010, 01:12
DFX v9.x (http://www.fxsound.com/) for winamp does not appear in the winamp dsp list on ffdshow. DFX v8.5x does. Maybe it's related to the "64bit support" they added?

Mercury_22
24th February 2010, 10:42
I have a problem with some files with AC3 which are not playing over HDMI, HDMI set as "Default Device" NOT as Pass-through / Bitstream, tested with x64 and x86 ( both ICL and normal ) versions

The same files are playing well with my Speakers or Headphones set as "Default Device".

Behavior:
When I'm using Windows Media Center or Windows Media Player the player refuse to play the file ( "Windows Media Player encountered a problem while playing the file" ) but when I'm using MPC-HC it takes a few good seconds to start playing or I need to click on the image to start playing
Tested with Haali ( manual registered ) and MPC-HC splitters, also if i use any other filter / decoder for ac3 like MPC-HC's or the one from WMC / WMP the same files are playing OK

Everything with default settings, clean windows install, FFD only audio, FFD video not used, ( do not use merit), VSFilter from http://www.xvidvideo.ru/2009-10-22-10-49-14/doc_download/3163-standalonefilters-svn1694x64.html

Sample (http://sharebee.com/d93dbc05)

EDIT: I've managed to narrow down the "location" of the problem : If I unregister the VSFilter the problem it's solved so now I'm confuse cause for other files also with AC3 the combination VSFilter & FFD audio it's working OK with HDMI set as "Default Device" and as I've said before VSFilter & FFD it's also working OK for this files (those with problems) with Speakers or Headphones set as "Default Device" !

EDIT 2: Same thing it's happening with FFD's internal subtitles but if I enable the subtitles or if I change the "Default Device" from Speakers to HDMI after I start playing everything it's working OK

hoborg
24th February 2010, 11:17
Otherwise I have committed fixes today on DVD menus and subs

:thanks:

BTW, do you think it will be possible to use DVD navigation + enabled crop in future?
I am using crop to remove black borders from MPEG-2 stream (analog TV), but if crop is enabled, DVD navigation is broken (wrong higlighted position of buttons).

Leak
24th February 2010, 14:21
I am using crop to remove black borders from MPEG-2 stream (analog TV), but if crop is enabled, DVD navigation is broken (wrong higlighted position of buttons).
Make sure the "Subtitle" filter comes before the "Crop" filter in ffdshow's filter list - that way the subtitles are etched into the picture before cropping.

Of course, if your problem are the mouseover areas rather than the highlight - well, that can't be fixed as it's up to the player and the DVD navigator to figure out where the mouse is, and those expect the image to be totally unaltered (at least as far as changing the visible portion of the image is concerned).

You can, however, ditch the mouse for DVD navigation and use the keyboard or a remote - those are of course not affected by this problem.

hoborg
24th February 2010, 14:32
Make sure the "Subtitle" filter comes before the "Crop" filter in ffdshow's filter list - that way the subtitles are etched into the picture before cropping.

Of course, if your problem are the mouseover areas rather than the highlight - well, that can't be fixed as it's up to the player and the DVD navigator to figure out where the mouse is, and those expect the image to be totally unaltered (at least as far as changing the visible portion of the image is concerned).

You can, however, ditch the mouse for DVD navigation and use the keyboard or a remote - those are of course not affected by this problem.

Thanks for info!
I didnt known i can move up/down by filters :)
It is working fine now.
I am using remote to navigate so position is no problem too :)

Thanks again.

albain
24th February 2010, 19:27
Much better. But there's still some crap around the subs:

http://thumbnails6.imagebam.com/6938/cff36569375357.gif (http://www.imagebam.com/image/cff36569375357)

Ok, I'll fix this

Is there a way you send me those subs (the edges are helpful for testing) ?

Casshern
25th February 2010, 01:01
Hi Albain,

Is there any news on this audio bug, which affects almost all criterion blu rays (they mostly use mono):

I made a small 5 sec sample, where you can hear the bug pretty clearly. Interestingly the video ends after 5 seconds and the audio is still playing another 5 seconds with mpc hc + ffdshow(as a audio decoder) at half speed:

http://www.mediafire.com/file/omtnmdnjiyy/sample.m2ts

Thanks very much for looking at this.

STaRGaZeR
25th February 2010, 01:58
Those subs come from a series of 10 DVDs, the funny thing is that DVD1 is wrong, while DVD7 is OK for example. There are problems with the menus too, so I'm sending you the whole menu and one minute of actual footage. Select play or episode 1 -- prologue, otherwise MPC-HC will hang because of the missing files. The setup and extras menu are still images, and they're not displayed properly, moving the mouse over the buttons or using the keyboard does nothing. The subtitle track is the one selected here:

http://thumbnails3.imagebam.com/6954/9167eb69531025.gif (http://www.imagebam.com/image/9167eb69531025)

http://www.megaupload.com/?d=P0S0TZN7 (247MB!!)

tal.aloni
25th February 2010, 09:44
Casshern,
I've further investigated your mono sample today:
I think this is a MPC-HC Mpeg splitter bug,
I don't have any problem with haali media splitter.

Regards,
Tal

Casshern
25th February 2010, 17:36
Casshern,
I've further investigated your mono sample today:
I think this is a MPC-HC Mpeg splitter bug,
I don't have any problem with haali media splitter.

Regards,
Tal
Thanks, i will try my luck the mpc hc forum, then!

Xorp
25th February 2010, 22:38
Everything should be fixed in revision 3283 :

- DVD menus
- Bluray subs with YUV colorspaces
- MKV support for bluray subtitles

There is a bug in Haali splitter (or rather a support to be added) : the PGS subtitles don't have any media subtype in the output pin of Haali's. Don't tried with MPC matroska splitter

TODO/TOFIX :
- Bilinear scaling in RGB mode (only bluray subs may use this scaler)
- Bluray subtitles support from file (.sup) How will this work if mkvmerge cannot mux sups into mkvs?

leeperry
25th February 2010, 23:56
I see that ffdshow video has hotkeys available....ffdshow audio does not? is there anyway whatsoever to set hotkeys on the volume filter? :(
I use Kernel Streaming in S/PDIF w/ headphones on this thing: http://thumbnails26.imagebam.com/6959/64690369587192.gif (http://www.imagebam.com/image/64690369587192)

I can't control volume at all, and KMixer is unbearable on XP...bummer #_#

I've also looked for winamp/VST plugins that would allow hotkeys for volume control...but no luck.

tal.aloni
25th February 2010, 23:58
Hi Xorp, I'm a big fan!

I think MakeMKV can mux .sup into mkvs,

hopefully mkvmerge will add support in the future, now that there is a filter that can play this format properly.

also, albain pointed out that with some development, you could just put the .sup file in the movie directory, without need to mux.

Tal

tal.aloni
26th February 2010, 00:00
leeperry,
you should look into automation software like girder.

leeperry
26th February 2010, 00:18
leeperry,
you should look into automation software like girder.
and what would that do for me? I would need two hotkeys in ffdshow audio to play w/ the attenuation of the "volume" filter...I think I'm SOL :(

isn't there a way through some DLL call or registry entry to do that? because I'm good w/ assigning hotkeys/actions to my Griffin Powermate http://t2.gstatic.com/images?q=tbn:vfcuznsdCgjjLM

tal.aloni
26th February 2010, 07:57
leeperry, it would be smarter to control the master volume.
I'm sure a device that was designed to look like a knob can somehow do that, (and if it doesn't, and you can surely do that with girder's help).

ikarad
26th February 2010, 08:48
I try ffdshow rev 3287 and video crash at each time subtitles must be displayed. There is the same problem like with 3285
https://sourceforge.net/tracker/?func=detail&aid=2959481&group_id=173941&atid=867360

tal.aloni
26th February 2010, 10:45
yes, the crash happen because YV12 is not supported right now by one of the scaler methods.

albain is working on it.

ikarad
26th February 2010, 11:16
yes, the crash happen because YV12 is not supported right now by one of the scaler methods.

albain is working on it.

Although in ffdshow I ony check YUY 2 and not YV12.
Although with RGB 32 it works partially.
If I turn on subtitles from the start of the sample, video crash. If I turn on after the first subtitle, video doesn't crash.

I try with another blu-ray movies and It crash at each time even with rgb32

update: I don't use dxva

ikarad
26th February 2010, 11:37
With RGB 32, There are some problems with subtitles.
1) Some subtitles appears with a time delay after the voice.

example, this subtitle appears with 1-2 seconds later
124
00:08:27,381 --> 00:08:28,590
Passing through the scorching sunshine
Storyvoards and Settings vy: Shinji Higuchi

I give you subtitle file extracted from bluray
http://www.zshare.net/info.html?73050006-7d75d90afaea102f4d92066e73874fde

2) some subtitles are cut
example in this screen: the last word is cut
http://nsa13.casimages.com/img/2010/02/26/mini_100226113716480529.jpg (http://www.casimages.com/img.php?i=100226113716480529.jpg)

example of video that I give the page before

part 1
http://www.zshare.net/info.html?72194780-3f3de5a523000d960412ca4e70f4959e
part2
http://www.zshare.net/info.html?72228704-870148d21c7371e7a2cb0c45e37239c1
part3
http://www.zshare.net/info.html?72228942-da539adec6856595c9fa215e89fcfdf2

part 4
http://www.zshare.net/info.html?72879609-e7005b47f97bd593cc1fac7d6620cda5

part 5
http://www.zshare.net/info.html?72894035-f4d916b0cbd3fbf999835142beff854c
part 6
http://www.zshare.net/info.html?72901975-036b32dfe47b4378533fe6974fb1237c

partie 7
http://www.zshare.net/info.html?72152693-cff6f6453a85c6f497a94c0fc61987f5

https://sourceforge.net/tracker/?func=detail&aid=2959562&group_id=173941&atid=867360

leeperry
26th February 2010, 11:38
leeperry, it would be smarter to control the master volume.
no windows master volume over S/PDIF.

tal.aloni
26th February 2010, 11:44
no windows master volume over S/PDIF.

are you doing realtime encoding to S/PDIF? why can't you use the receiver to control the volume?

leeperry
26th February 2010, 12:29
are you doing realtime encoding to S/PDIF? why can't you use the receiver to control the volume?
I've plugged my headphones directly to the 2 boxes you're seeing...besides I don't like analog volume attenuation, as it increases distortion/kills the stereo balance on stepless pots...and stepped pots are just very inaccurate: http://www.bursonaudio.com/hp_volume_control.htm

I'm outputting bit-perfect stereo PCM over KS in S/PDIF...and no windows volume works at all. anyway, I will look for other solutions now ;)

Shark007
26th February 2010, 14:52
To control the volume from the PC rather than from the amplifier when using spdif digital output, go to the 'Control Panel | Sound' applet and double click the spdif output device. Go to the Advanced tab and uncheck the two Exclusive Mode boxes.

fastplayer
26th February 2010, 21:21
@clsid:
In rev3289 you changed the tool tip text for decoding threads to "Only for ffmpeg-mt H.264 and libavcodec MPEG-1/2 decoder". What does this mean now when using libavcodec for H.264 decoding?

clsid
26th February 2010, 22:08
libavcodec will use only 1 thread for H.264. The MT patch that we used for libavcodec no longer works properly and was removed a while ago.

For multi-threaded H.264 decoding you should select ffmpeg-mt.

jimwhite
26th February 2010, 22:16
I've plugged my headphones directly to the 2 boxes you're seeing...besides I don't like analog volume attenuation, as it increases distortion/kills the stereo balance on stepless pots...and stepped pots are just very inaccurate: http://www.bursonaudio.com/hp_volume_control.htm

I'm outputting bit-perfect stereo PCM over KS in S/PDIF...and no windows volume works at all. anyway, I will look for other solutions now ;)

:confused::rolleyes: This is funny.... all over the internet audio fanatics are espousing analog volume control over digital for the same reasons !!! :D

so tell me... how does a resistive voltage divider create distortion? Keep it technical now, no hyperbole... I are an engineer !! :p

fastplayer
26th February 2010, 22:17
libavcodec will use only 1 thread for H.264. The MT patch that we used for libavcodec no longer works properly and was removed a while ago.

For multi-threaded H.264 decoding you should select ffmpeg-mt.
Bear with me because I don't get it. :o
In MPlayer you can pass "-lavdopts threads=X" as an argument to tell libavcodec how many threads to use for H.264 and MPEG-2 decoding. Has this been removed now in Mplayer or is it because of some limitation in ffdshow? The MT patch was exclusive to ffdshow only, right?

clsid
26th February 2010, 22:18
@Albain
I noticed your intention to update libswscale. If you or anyone else is going to attempt that, I have some suggestions:
1) Make it part of libavcodec.dll instead of mplayer.dll. That is more natural since libswscale has become part of FFmpeg. They also share code.
2) Try to migrate Haruhiko's custom multi-threaded resizing code.
3) Wait until the current major changes in ffdshow are stable. (DXVA and HD audio bitstreaming)
4) First update our libavcodec with pixfmt updates from FFmpeg. That has been on my ToDo list for a while now.

clsid
26th February 2010, 22:22
Bear with me because I don't get it. :o
In MPlayer you can pass "-lavdopts threads=X" as an argument to tell libavcodec how many threads to use for H.264 and MPEG-2 decoding. Has this been removed now in Mplayer or is it because of some limitation in ffdshow? The MT patch was exclusive to ffdshow only, right?
There are mplayer builds based on ffmpeg-mt too. Plain libavcodec is not multi-threaded for H.264. You can tell it to use X threads, but it won't help increase performance.

fastplayer
26th February 2010, 22:28
There are mplayer builds based on ffmpeg-mt too. Plain libavcodec is not multi-threaded for H.264. You can tell it to use X threads, but it won't help increase performance.
Oh, I assumed it was but only for slice-based encodes.
Anyway, let's hope they merge ffmpeg-mt soon with the main branch. :)

tetsuo55
26th February 2010, 23:01
@Albain
I noticed your intention to update libswscale. If you or anyone else is going to attempt that, I have some suggestions:
1) Make it part of libavcodec.dll instead of mplayer.dll. That is more natural since libswscale has become part of FFmpeg. They also share code.
2) Try to migrate Haruhiko's custom multi-threaded resizing code.
3) Wait until the current major changes in ffdshow are stable. (DXVA and HD audio bitstreaming)
4) First update our libavcodec with pixfmt updates from FFmpeg. That has been on my ToDo list for a while now.
Additionally, it would be great if ffmpeg updates in the future would be more easy and natural, we should be as close to ffmpeg git as possible.

tal.aloni
26th February 2010, 23:12
we should be as close to ffmpeg git as possible.

so say we all!

fastplayer
26th February 2010, 23:38
so say we all!
Yeah, let the Cylons do all the code grunt work! :D
I miss BSG... :-(

leeperry
27th February 2010, 01:23
how does a resistive voltage divider create distortion? Keep it technical now, no hyperbole... I are an engineer !! :p
yay, we has a technician in teh house! well uLilith does 64bit float volume attenuation...this is the highest quality of volume attenuation you can possibly have(it also decodes lossy audio and applies DSP such as VST plugins in 64fp too http://forum.slysoft.com/images/smilies/agreed.gif).

here's why audioholics ppl prefer stepped attenuators:
http://diyaudio.co.kr/wwwboard1/data/board1/compare.pdf
http://www.dact.com/html/attenuator_data_sheet.html
http://www.bursonaudio.com/hp_volume_control.htm

I know the Burson ppl quite well...when they say that stepless pots are evil, I very much trust them.

and the top of the line ALPS pots cost +$300...a cheapo analog stepless pot is junk...many cheap headphones amps have major stereo imbalance issues at low volume.
To control the volume from the PC rather than from the amplifier when using spdif digital output, go to the 'Control Panel | Sound' applet and double click the spdif output device. Go to the Advanced tab and uncheck the two Exclusive Mode boxes.
thanks! but I'm allergic to anything newer than XP, it makes my eyes bleed for some reason.

Astrophizz
27th February 2010, 04:13
If you're worried about the quality of a voltage divider (noise from tiny thermal shifts in resistors and any possible minute non-linearity caused by that) then what's going in the the rest of the circuits in a sound system should give you nightmares.

albain
27th February 2010, 16:13
@Albain
I noticed your intention to update libswscale. If you or anyone else is going to attempt that, I have some suggestions:
1) Make it part of libavcodec.dll instead of mplayer.dll. That is more natural since libswscale has become part of FFmpeg. They also share code.
2) Try to migrate Haruhiko's custom multi-threaded resizing code.
3) Wait until the current major changes in ffdshow are stable. (DXVA and HD audio bitstreaming)
4) First update our libavcodec with pixfmt updates from FFmpeg. That has been on my ToDo list for a while now.

Appart Haruhiko's code on multithreaded and that I isolated from the rest, this is very difficult to figure out what code has been added/modified. For example I saw MMX2 optimizations that are not in the current ffmpeg code.
I spent (and lost) a lot of time to merge the old and new sources.
I'd rather think that it is a better idea to take a fresh new start with the last code, and why not from ffmpeg directly.
But this is a big work because :
1/ several filters use mplayer library to do some resize (resize filter, subtitles filter,...) => TODO : replace mplayer by ffmpeg
2/ one defined other pixel formats : FF_CSP* for ffdshow, PIX_FMT* for ffmpeg, and IMG_FMT* for mplayer. So rework is necessary => TODO : replace the colorspace conversions where IMG_FMT* are used with PIX_FMT*
3/ Haruhiko's patch for MT resize

We miss Haruhiko ... :rolleyes:

This was not expected and I am not ready to do this right now, more urgent stuff to do (on Media Control).
If Tal's patch is enough for now, we can carry on with it until some better rework is done on resize libraries.

From my point of view HD audio is tabilized for now, just some special stuff is needed for xonar users.

About DXVA : alpha blending to be done

dann23
28th February 2010, 17:33
where is Haruhiko??? :)

albain
28th February 2010, 18:54
Also I realized that libswscale (ffmpeg) is not compatible with mingw64 yet, so this is a nogo for now

Maccara
28th February 2010, 19:09
Also I realized that libswscale (ffmpeg) is not compatible with mingw64 yet, so this is a nogo for now

"hack" which makes it compilable:

diff --git a/swscale_template.c b/swscale_template.c
index bbd9a1f..45e0ca5 100644
--- a/swscale_template.c
+++ b/swscale_template.c
@@ -2497,7 +2497,7 @@ static inline void RENAME(hcscale_fast)(SwsContext *c, int16_t *dst,
/* GCC 3.3 makes MPlayer crash on IA-32 machines when using "g" operand here,
which is needed to support GCC 4.0. */
#if ARCH_X86_64 && AV_GCC_VERSION_AT_LEAST(3,4)
- :: "m" (src1), "m" (dst), "g" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
+ :: "m" (src1), "m" (dst), "g" ((x86_reg)dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
#else
:: "m" (src1), "m" (dst), "m" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
#endif


This was posted to ffmpeg devel (don't remember by who) and dismissed promptly (don't care by who). Haven't seen anything else regarding this since, but works for me, so I have no idea why it was not an acceptable patch.

(probably because it will cause problems with some compilers, but works ok with mingw64 4.4.3, though, so I don't give a damn)

I'm not at all familiar with the swscale code, so I'm not sure if that is a completely valid patch, but you might want to evaluate it and try to push it forward if it seems ok. Also, I have no idea if there are other problems still.

DeathTheSheep
28th February 2010, 19:40
if you want negative video delay, you can just apply positive audio delay.

negative delay is impossible when it comes to playback of live broadcast (DVB-T playback for example).

I was talking about audio delay. I realize negative video delay would be awkward. The audio delay settings cannot accept negative values.

oddball
28th February 2010, 21:43
I have a big problem with all the latest SVN builds. I have an MKV which keeps going out of sync with the audio using all the latest SVN's. I reinstalled an icl11 build and it plays fine. But everything icl10 or generic available on the downloads page goes out of sync.

The build I have that works and I cannot remember where I downloaded it from is ffdshow_rev3195_20100110_sse_icl11.exe

Everything since does not playback the video in sync with the audio correctly on this particular file. I can't upload a clip of it because I can't figure out how to save a small section of a 6-7GB MKV file (It's 1080P).

Any ideas how to proceed?

EDIT: I just installed build 3200 icl10 and that works fine. But builds 3274 and 3291 have the audio sync issue.

Andy o
28th February 2010, 22:04
3292 now lets me use bluray subs with madVR and overlay! Great work (has still a few bugs though). But resizing is giving me a green picture with EVR, EVR-CP, madVR, and overlay (didn't test with others).

Regarding sub bugs, I have crashes or odd sub colors with stripped movie-only bluray structures (in ISO), but it doesn't seem to happen with straight bluray discs (and I assume rips too). With those though, sometimes the subs flicker when appearing/disappearing (specifically, happens with The Box US version). With bluray rips to mkv, the subs don't show sometimes after seeking. Disabling/enabling subs in ffdshow seems to fix it.

Also, this seems to happen with MPC-HC's sub renderer as well, sometimes there are two subs onscreen, one for instance for the background and the other for the main dialogue, with independent timings. In this case, only one would show and the second one will only appear when the first one is out. The commercial bluray players show both appearing and disappearing at different times, overlapping.

EDIT: went back to 3287 and the resize green picture problem is gone, it seems to be introduced with 3292. Anyone else having it (or not)?

oddball
28th February 2010, 22:31
This may help indicate the problem with the audios sync issue (Or maybe not). BTW it's DTS audio not AC3.

http://pastebin.org/99104

EDIT: I've found out where the issue lies. Deblocking. If I tick 'skip deblocking always' the audio stays in sync!

Andy o
28th February 2010, 22:34
by the way, I noticed bluray subs have some semi-transparency that they don't have in the commercial players. Is there a way to disable this semi transparency for bluray?

ikarad
28th February 2010, 22:57
I have the same crash with blu ray subtitle with rgb32 or yuy2 with rev 3292 as with 3287 and I don't use dxva.
http://sourceforge.net/tracker/index.php?func=detail&aid=2959481&group_id=173941&atid=867360

clsid
28th February 2010, 23:08
EDIT: I've found out where the issue lies. Deblocking. If I tick 'skip deblocking always' the audio stays in sync!The problem is not with deblocking. You computer is obviously just too slow to decode with deblocking enabled.

If you have a multi-core CPU, then use ffmpeg-mt instead of libavcodec for H.264. That should help improve decoding performance.

Andy o
28th February 2010, 23:50
I have the same crash with blu ray subtitle with rgb32 or yuy2 with rev 3292 as with 3287 and I don't use dxva.
http://sourceforge.net/tracker/index.php?func=detail&aid=2959481&group_id=173941&atid=867360

What player are you using? If MPC-HC, have you tried disabling the MPC-HC sub renderer? (uncheck auto load subtitles).

FredThompson
1st March 2010, 05:24
3291 32bit does not properly decode mpeg2 4:2:2 with libmpeg2. Chroma looks like max green, like a cheap night vision scope.

tal.aloni
1st March 2010, 07:47
I was talking about audio delay. I realize negative video delay would be awkward. The audio delay settings cannot accept negative values.

negative audio delay = positive video delay

so if you want -80 ms delay to the audio, set +80 ms delay for the video.

ikarad
1st March 2010, 10:31
What player are you using? If MPC-HC, have you tried disabling the MPC-HC sub renderer? (uncheck auto load subtitles).

I use mpc-hc
With or without use of sub renderer of mpc-hc, there are crashs.
It's a bug of sub renderer of ffdshow because when bluray subs from ffdshow are disabled there is no crash.

albain
1st March 2010, 20:46
@All : please precise which version you are using and especially :

1/ DXVA Mode or software mode
2/ which colorspace is set in output

Thanks

About green picture issue : it was a workaround to YV12 crash (used in DXVA) but I reverted it in revision 3298

Ikarad : can you try again with rev 3298
I don't reproduce your crashes in RGB32 (neither in other colorspaces), I would be interested in a sample

ikarad
1st March 2010, 21:29
@All : please precise which version you are using and especially :

1/ DXVA Mode or software mode
2/ which colorspace is set in output

Thanks

About green picture issue : it was a workaround to YV12 crash (used in DXVA) but I reverted it in revision 3298

Ikarad : can you try again with rev 3298
I don't reproduce your crashes in RGB32 (neither in other colorspaces), I would be interested in a sample

Where can I download rev 3298 because in xvidvideo.ru there is only rev3295?

As I said before, I have crash only when I select blu ray subtitle renderer of ffdshow. If I don't select it, there is no crash.
I don't use dxva and I use ffmpeg-mt with yuy 2. I test with YV12, NV12 or RGB32, thre are the same crashs.

For the sample, it's the same as I give you before.
part 1
http://www.zshare.net/info.html?72194780-3f3de5a523000d960412ca4e70f4959e
part2
http://www.zshare.net/info.html?72228704-870148d21c7371e7a2cb0c45e37239c1
part3
http://www.zshare.net/info.html?72228942-da539adec6856595c9fa215e89fcfdf2

part 4
http://www.zshare.net/info.html?72879609-e7005b47f97bd593cc1fac7d6620cda5

part 5
http://www.zshare.net/info.html?72894035-f4d916b0cbd3fbf999835142beff854c
part 6
http://www.zshare.net/info.html?72901975-036b32dfe47b4378533fe6974fb1237c

partie 7
http://www.zshare.net/info.html?72152693-cff6f6453a85c6f497a94c0fc61987f5

ikarad
1st March 2010, 22:07
I find a problem with resize filter and subtitle render of mpc-hc (I think it's a problem but I'm not sure)

With resize filter subs are displayed uncorrectly in fullscreen mode (some are cut, see the first and second subs)
http://nsa14.casimages.com/img/2010/03/01/mini_100301100608991437.jpg (http://www.casimages.com/img.php?i=100301100608991437.jpg)

Without resize filter subs are displayed correctly
http://nsa15.casimages.com/img/2010/03/01/mini_100301100643129110.jpg (http://www.casimages.com/img.php?i=100301100643129110.jpg)

parameters of resize filter that I use
http://nsa14.casimages.com/img/2010/03/01/mini_100301100655235078.jpg (http://www.casimages.com/img.php?i=100301100655235078.jpg)
http://nsa14.casimages.com/img/2010/03/01/mini_100301100704557631.jpg (http://www.casimages.com/img.php?i=100301100704557631.jpg)

Is it normal or is it a problem? Maybe I have select the wrong options but I don't know.

And if it's a problem is it possible to correct it?

update: If I use specify vertical and horizontal size option , there is the same problem
http://nsa15.casimages.com/img/2010/03/01/mini_100301102812373874.jpg (http://www.casimages.com/img.php?i=100301102812373874.jpg)

Although, if I use specify horizontal size, there is no problem
http://nsa15.casimages.com/img/2010/03/01/mini_100301102812990115.jpg (http://www.casimages.com/img.php?i=100301102812990115.jpg)

What are the differences between these options because I don't understand? What is the better option?

albain
1st March 2010, 22:59
It depends on the subtitles : if you have ASS/SSA/VOBSUB/PGS subtitles with the position set, then coordinates are calculated proportionnaly between oldsize/old positions/new size (after resize)

If these are simple subtitles (srt), then the position is calculated according to the vertial/horizontal position of the subtitles in the subtitles section


So in the first case the subtitles can go out of the screen if you resize the filter.

However there is an option for ASS/ASS subs to maintain them inside the picture.
For PGS it is always done. For vobsub I don't know, I didn't code that part

This is weird that I don't reproduce your crashes (with your sample)

ikarad
2nd March 2010, 08:46
It depends on the subtitles : if you have ASS/SSA/VOBSUB/PGS subtitles with the position set, then coordinates are calculated proportionnaly between oldsize/old positions/new size (after resize)

If these are simple subtitles (srt), then the position is calculated according to the vertial/horizontal position of the subtitles in the subtitles section


So in the first case the subtitles can go out of the screen if you resize the filter.

However there is an option for ASS/ASS subs to maintain them inside the picture.
For PGS it is always done. For vobsub I don't know, I didn't code that part

This is weird that I don't reproduce your crashes (with your sample)
Thanks, I find it's ass (thanks to Mike5)

http://nsa15.casimages.com/img/2010/03/02/mini_10030209364646533.jpg (http://www.casimages.com/img.php?i=10030209364646533.jpg)

If not where is this option that you told?

However there is an option for ASS/ASS subs to maintain them inside the picture.
is it in ffdshow or in mpc-hc? and where because I don't find?

For your crashes, you speak about rev3298 but I don't find this rev. I think it's strange because before this problem I never had a crash with ffdshow and these crashs are with vista and xp sp3. Do you use mpc-hc? and if yes which version because I could try?

Edit: I have tried different versions of ffdshow and I notice that until rev3274 there is no crash with use of sub-renderer of mpc-hc but since rev3277 there is crash even if I don't select bluray subtitle
from ffdshow. If I use mpc-hc sub renderer there is crash only since rev 3277 and I use rgb32.
I I select bluray subs from ffdshow after desactivating sub renderer from mpc-hc thre is crash. If I select bluray subs renderer from ffdshow withtout desactivating sub renderer from mpc-hc there is crash. But when mpc-hc doesn't crash (It can arrive but it's very rare), there is no crash until the end of the movie.

annother question: Maybe I misunderstand but your support it's fot integrated and separated bluray subs or just for separated bluray subs?


my parameters under mpc-hc 1680. I try different version of mpc-hc and there is the same problem since ffdshow 3277
http://nsa14.casimages.com/img/2010/03/02/mini_100302095548606002.jpg (http://www.casimages.com/img.php?i=100302095548606002.jpg)
http://nsa15.casimages.com/img/2010/03/02/mini_100302095557321617.jpg (http://www.casimages.com/img.php?i=100302095557321617.jpg)
http://nsa14.casimages.com/img/2010/03/02/mini_100302095601909402.jpg (http://www.casimages.com/img.php?i=100302095601909402.jpg)
http://nsa15.casimages.com/img/2010/03/02/mini_100302095610903263.jpg (http://www.casimages.com/img.php?i=100302095610903263.jpg)
http://nsa15.casimages.com/img/2010/03/02/mini_100302095613614593.jpg (http://www.casimages.com/img.php?i=100302095613614593.jpg)
http://nsa14.casimages.com/img/2010/03/02/mini_100302095922956999.jpg (http://www.casimages.com/img.php?i=100302095922956999.jpg)

my parameters under ffdshow
http://nsa15.casimages.com/img/2010/03/02/mini_100302095938101672.jpg (http://www.casimages.com/img.php?i=100302095938101672.jpg)
http://nsa14.casimages.com/img/2010/03/02/mini_100302095937864937.jpg (http://www.casimages.com/img.php?i=100302095937864937.jpg)
http://nsa14.casimages.com/img/2010/03/02/mini_100302100216986174.jpg (http://www.casimages.com/img.php?i=100302100216986174.jpg)
http://nsa14.casimages.com/img/2010/03/02/mini_100302100228280156.jpg (http://www.casimages.com/img.php?i=100302100228280156.jpg)
http://nsa15.casimages.com/img/2010/03/02/mini_100302100229824299.jpg (http://www.casimages.com/img.php?i=100302100229824299.jpg)

PC:
Q6600
gtx280
xp sp3 or vista 32 : same problem.
xfi titanium (last driver)
dx last version (feb 2010)

tal.aloni
2nd March 2010, 09:13
Albain,
rev. 3298 hasn't been commited yet.

Mike5
2nd March 2010, 09:14
Thanks, I don't know if it's a ssa or srt subtitle because subs are in a mkv file.

Use MediaInfo (http://mediainfo.sourceforge.net).

ikarad
2nd March 2010, 09:36
Use MediaInfo (http://mediainfo.sourceforge.net).

Thanks
I find, it's ass
http://nsa15.casimages.com/img/2010/03/02/mini_10030209364646533.jpg (http://www.casimages.com/img.php?i=10030209364646533.jpg)

mike23
2nd March 2010, 11:23
When I drag an *.avi movie onto Media PlayerClassic HomeCinema (=not the MS player !) then a popup appears prompting the user for ffdshow options e.g.
"Don't use ffdshow" or use ffdshow".

What should I answer here?

When is it recommended to use ffdshow and when not?

What are the pros and cons of ffdshow?

What is used otherwise?

Assume I click "Don't ask me again": How can I later change this option?

clsid
2nd March 2010, 14:28
If the pop-up displays in a player like Media Player Classic, then you should choose to use ffdshow.
If it pops up in a game then choose to not use ffdshow.

clsid
2nd March 2010, 14:30
@ Albain & Tal

Could one of you look at this issue:
http://ffdshow-tryout.sourceforge.net/phpBB2/viewtopic.php?t=1388

tal.aloni
2nd March 2010, 16:41
Could one of you look at this issue

OK,
I'll try to assist.

Gleb Egorych
2nd March 2010, 20:39
tal.aloni, please test new 196.75 driver if it fixed the problem with DXVA specs violation:
http://forums.nvidia.com/index.php?showtopic=159813

XP drivers are here:
http://www.nvidia.com/object/winxp_196.75_whql.html
http://www.nvidia.com/object/winxp64_196.75_whql.html

tal.aloni
2nd March 2010, 22:07
tal.aloni, please test new 196.75 driver if it fixed the problem with DXVA specs violation

Thanks for letting me know,
it does fix the violations!

hoborg
2nd March 2010, 22:43
Hi.
Looks like there are some problems with DXVA in latest FFDShow x86 (tested on 3292 and 3297) - every 3-4s there is glitch like bad frame order, and video will freeze after few of such glitches.
Tested in Graphstudio, splitted by haali spliter, Win7x64.
No problem on rev.3259.

tal.aloni
2nd March 2010, 22:48
hoborg,
just noticed it as well.

Gleb Egorych
2nd March 2010, 23:16
Thanks for letting me know,
it does fix the violations!
Thanks! BTW this driver fixes several very old and annoying bugs related to VMR9.

tal.aloni
2nd March 2010, 23:46
hoborg, the issue is introduced with rev. 3288,
I'm looking into it.

albain
3rd March 2010, 09:11
"hack" which makes it compilable:

diff --git a/swscale_template.c b/swscale_template.c
index bbd9a1f..45e0ca5 100644
--- a/swscale_template.c
+++ b/swscale_template.c
@@ -2497,7 +2497,7 @@ static inline void RENAME(hcscale_fast)(SwsContext *c, int16_t *dst,
/* GCC 3.3 makes MPlayer crash on IA-32 machines when using "g" operand here,
which is needed to support GCC 4.0. */
#if ARCH_X86_64 && AV_GCC_VERSION_AT_LEAST(3,4)
- :: "m" (src1), "m" (dst), "g" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
+ :: "m" (src1), "m" (dst), "g" ((x86_reg)dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
#else
:: "m" (src1), "m" (dst), "m" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask),
#endif


This was posted to ffmpeg devel (don't remember by who) and dismissed promptly (don't care by who). Haven't seen anything else regarding this since, but works for me, so I have no idea why it was not an acceptable patch.

(probably because it will cause problems with some compilers, but works ok with mingw64 4.4.3, though, so I don't give a damn)

I'm not at all familiar with the swscale code, so I'm not sure if that is a completely valid patch, but you might want to evaluate it and try to push it forward if it seems ok. Also, I have no idea if there are other problems still.

Thanks, compilation works now

tal.aloni
3rd March 2010, 20:28
Looks like there are some problems with DXVA in latest FFDShow x86 (tested on 3292 and 3297) - every 3-4s there is glitch like bad frame order, and video will freeze after few of such glitches.


fixed in rev. 3302

albain
3rd March 2010, 21:08
Finally I have managed to import the new libswscale with mutlithreading patch and did the updates on all the ffdshow filters (resize, sharp, subtitles, colorspace converter...)

I am testing it right now but it seems (surprisely) to be going well.

Maybe it will fix the crashes with bluray subs

Sebastiii
3rd March 2010, 22:00
Great news and work as usual :)
Thx,
Seb.

STaRGaZeR
4th March 2010, 01:45
Great news and work as usual :)
Thx,
Seb.

Indeed!

Guys, is there any way of speeding up ICL10 compiling? It's only using 1 core here and takes forever to build.

JarrettH
5th March 2010, 04:53
What should I do to confirm dxva is working in ffdshow? I've ticked off h264 in the dxva dialogue so far and am using ffmpeg-mt for the h264 decoder. Does a new tray icon for dxva video appear? Does it only work with EVR?

Running Windows 7, 7600 GT, ffdshow rev 3305, 196.21 drivers

hoborg
5th March 2010, 08:01
hoborg, the issue is introduced with rev. 3288,
I'm looking into it.

:thanks:
No problem in 3304 any longer :)

albain
5th March 2010, 09:45
Hi,

here is a test build with new libswscale and libpostproc libraries.

There are many tests to do to :
Image filters updated :
- Blur
- Deinterlace (using ffmpeg)
- Postprocessing
- Luma
- Resize
- Sharpen
- Warsharp
- Subtitles

With different colorspaces

Bluray and DVD subtitles to be tested too

Some MMX2 instructions and general optimizations have been added since the versions we kept, also we still have the multithreading patch from Haruhiko.

Libmplayer is not used anymore and its interest becomes rather limited : audio channels reordering and yadif deinterlacer
Both could be imported into FFDShow

Here is the link (http://damienbt.free.fr/ffdshow_rev3299_20100305_dbt_.exe)

Source patch (http://damienbt.free.fr/ffdshow_ffmpeglibs_update.patch) (many files!)

ikarad
5th March 2010, 11:04
Hi,

here is a test build with new libswscale and libpostproc libraries.

There are many tests to do to :
Image filters updated :
- Blur
- Deinterlace (using ffmpeg)
- Postprocessing
- Luma
- Resize
- Sharpen
- Warsharp
- Subtitles

With different colorspaces

Bluray and DVD subtitles to be tested too

Some MMX2 instructions and general optimizations have been added since the versions we kept, also we still have the multithreading patch from Haruhiko.

Libmplayer is not used anymore and its interest becomes rather limited : audio channels reordering and yadif deinterlacer
Both could be imported into FFDShow

Here is the link (http://damienbt.free.fr/ffdshow_rev3299_20100305_dbt_.exe)

Source patch (http://damienbt.free.fr/ffdshow_ffmpeglibs_update.patch) (many files!)
same crash with bluray subs with rgb32 or yuy 2 Even if I don't use subs from ffdshow and that I use sub renderer from mpc-hc, there is crash when I select subs. This problem only occurs since your implementation of blu rays subs support (since rev 3277).


I don't understand why. Maybe I don't select good options.
I have turn off auto load subtitle in mpc-hc and I have selected bluray subs in ffdshow. And when movie start I select subtitles in mpc-hc (navigate, subtitle langage and then select the subs)
Could you explain me how use blu ray subs from ffdshow?

albain
5th March 2010, 12:05
same crash with bluray subs with rgb32 or yuy 2 Even if I don't use subs from ffdshow and that I use sub renderer from mpc-hc, there is crash when I select subs. This problem only occurs since your implementation of blu rays subs support (since rev 3277).


I don't understand why. Maybe I don't select good options.
I have turn off auto load subtitle in mpc-hc and I have selected bluray subs in ffdshow. And when movie start I select subtitles in mpc-hc (navigate, subtitle langage and then select the subs)
Could you explain me how use blu ray subs from ffdshow?


I have reproduced the crash with bluray subs

tal.aloni
5th March 2010, 12:15
Libmplayer is not used anymore and its interest becomes rather limited : audio channels reordering and yadif deinterlacer
Both could be imported into FFDShow

great, we finally put things into order.
your work is much appreciated, thanks!

ikarad
5th March 2010, 12:29
I have reproduced the crash with bluray subs

Do you know where is the problem ?

XhmikosR
5th March 2010, 14:42
Hi,

here is a test build with new libswscale and libpostproc libraries.

There are many tests to do to :
Image filters updated :
- Blur
- Deinterlace (using ffmpeg)
- Postprocessing
- Luma
- Resize
- Sharpen
- Warsharp
- Subtitles

With different colorspaces

Bluray and DVD subtitles to be tested too

Some MMX2 instructions and general optimizations have been added since the versions we kept, also we still have the multithreading patch from Haruhiko.

Libmplayer is not used anymore and its interest becomes rather limited : audio channels reordering and yadif deinterlacer
Both could be imported into FFDShow

Here is the link (http://damienbt.free.fr/ffdshow_rev3299_20100305_dbt_.exe)

Source patch (http://damienbt.free.fr/ffdshow_ffmpeglibs_update.patch) (many files!)
Thanks for all your hard work.:) Just letting you know in case you don't, that with this patch ffdshow x64 compilation fails.

http://pastie.org/private/c21r1tymvvdfmmsmdfceg

albain
5th March 2010, 14:51
Do you know where is the problem ?

This is a stupid mistake : at the beginning I was using ffmpeg as the PGS parser but it is far from working so I made one from exisiting MPC's parser but I forgot to remove some code.

This problem occurred randomly (variable unitialized) which explained why it wasn't easily reproductible

Anyway, fixed in revision 3306.

Here is a test build (http://damienbt.free.fr/ffdshow_rev3306_20100305_dbt_.exe) with the ffmpeg new libraries inside

Also I have to fix the problem with the edges

@XhmikosR
I know, I am working on it, the problem comes from ffdshow, not ffmpeg which was the tough part
It is just a matter of types.

@clsid, Tal & specialists
Does someone know why we use stride_t type which maps to "__w64 int" in 32 bits and "__int64" in 64 bits ?
Why would we need to have so large variables to store the strides which rarely exceeds a few thousands ?

Compilation errors are due to this problem of mapping
I wonder if I have to
1/remap all the int types within ffmpeg to stride_t or
2/change stride_t inside ffdshow to int

I think this is approach #1 that I should use... or #2

clsid
5th March 2010, 16:06
I would prefer if the ffmpeg code would stay as close to the original as possible. That makes it much easier to update it on a regular basis.

onomatopellan
5th March 2010, 16:31
Anyway, fixed in revision 3306.

Here is a test build (http://damienbt.free.fr/ffdshow_rev3306_20100305_dbt_.exe) with the ffmpeg new libraries inside

Great! There is no crash anymore. :thanks:
There is a problem with colored PGS though. In this image top is ffdshow rev3306 and bottom is MPC-HC subs (tried with rgb32 and nv12 outputs):
http://i49.tinypic.com/2nlto21.png

m2ts with PGS sub are made with MultiAVCHD and easySUP and it shows ok in a sony bluray player. Here is the sample:
-> SAMPLE <- (http://www.mediafire.com/?zjjmyoodiom)

STaRGaZeR
5th March 2010, 16:51
Here is a test build (http://damienbt.free.fr/ffdshow_rev3306_20100305_dbt_.exe) with the ffmpeg new libraries inside

With YV12 video, RGB32 HQ output:

- Resize crashes the player inmediately with errors in libavcodec.dll
- ffmpeg deinterlacers like 5-tap lowpass, same error as above.
- Postprocessing, same as above.
- Sharpen, everything works OK except swscaler that produces a black screen, also msharpen doesn't do anything it seems.
- Warpsharp works OK.
- In Blur, libavcodec error again when using mplayer temporal noise reducer, black screen with swscaler gaussian blur.
- Levels, libavcodec crash.
- Luminance level fix in Picture properties, libavcodec crash.

albain
5th March 2010, 16:55
I would prefer if the ffmpeg code would stay as close to the original as possible. That makes it much easier to update it on a regular basis.

This is the approach that I had. The ffmpeg code for those 2 libs is very close to the original code.
As for the pixel formats (moved from ffimgmt.h to where they belong)

However for these strides it is a little bit tricky because they can't be casted on the fly so one would have to copy them from the stride_t array to an int array before calling ffmpeg methods.

So for now I have changed the ffmpeg signatures from int to stride_t.
Maybe someone will find a better solution

Updated news : now the compilation works fine on 64 bits.
I'll post a 64 bits soon with the new patch

@Stargazer : thank you for testing. I can't reproduce the crashes however
What I have done (with graphstudio) :
MPC m2ts splitter -> MPC video decoder -> (yv12) -> ffdshow video -> (rgb32) -> EVR




There is some work to do indeed. I guess those crashes are all related to the same problem

albain
5th March 2010, 17:26
Ok, I reproduce the crashes but with MPC, not with graphstudio.

This is annoying because MPC doesn't let attach the debugger and will exit instead.

Otherwise, does someone know how to debug ffmpeg ?

I can debug it when building with MSVC but all the optimizations are disabled.

I tried with eclipse + gdb but the symbols are not loaded. I guess that an option is missing

@Ikarad : I have fixed that color problem. R and B colors were reversed as well as cut edges (fixed in revision 3307)

onomatopellan
5th March 2010, 18:35
Thanks albain, using rev 3307 now rgb32 output is ok but it crash again with nv12(dxva) output (using MPC-HC). :(

ikarad
5th March 2010, 18:45
Ok, I reproduce the crashes but with MPC, not with graphstudio.

This is annoying because MPC doesn't let attach the debugger and will exit instead.

Otherwise, does someone know how to debug ffmpeg ?

I can debug it when building with MSVC but all the optimizations are disabled.

I tried with eclipse + gdb but the symbols are not loaded. I guess that an option is missing

@Ikarad : I have fixed that color problem. R and B colors were reversed as well as cut edges (fixed in revision 3307)

Thanks there is no crash with YUY 2
Where can I download rev 3307?