View Full Version : LAV Filters - DirectShow Media Splitter and Decoders


Pages : 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Superb
22nd August 2011, 20:16
In context of ogm files I had to use full name - e.g. 'Japanese' (case sensitive as well) did the thing, usual 'jpn' was not enough.

Perhaps it would be good to add extra sentence or so, that certain containers require full name instead of just the code.Maybe it would be a better idea to make an internal (hashed?)table of all the languages and their shorter names. Automatically infer the longer name...

nevcairiel
22nd August 2011, 20:21
Funny, only happens with madVR 0.74. :/ However, FFDshow works ok with madVR 0.74.

Indeed.
Its really madVRs fault, it seems to keep a reference on the video decoder, so it doesn't get properly destructed. That happesn with ffdshow as well, its just that ffdshow frees the memory earlier.

I changed it now to free the memory earlier as well, so it doesn't result in catastrophic failure when this happens. In any case, you should report this to madshi.

Edit: I reported it.

nevcairiel
22nd August 2011, 20:26
In context of ogm files I had to use full name - e.g. 'Japanese' (case sensitive as well) did the thing, usual 'jpn' was not enough.

Perhaps it would be good to add extra sentence or so, that certain containers require full name instead of just the code.

Can you provide a small sample file with this problem?

madshi
22nd August 2011, 20:32
Its really madVRs fault, it seems to keep a reference on the video decoder, so it doesn't get properly destructed.
Oooopsi.

VipZ
22nd August 2011, 20:32
I found the reason it didn't work, and i fixed it (it wasn't the media type). I'll commit the change when i get home.

PS:
AR is also fixed again.

PPS:
I also fixed the problem with WMV1/2 not showing any image with the WMVideo decoder, hooray. :)

Awesome, thanks :)

nevcairiel
22nd August 2011, 20:40
LAV Filters 0.33

LAV Splitter
- Improved compatibility with the MS WMVideo decoder
- Fixed the mediatype for raw PCM streams

LAV Audio
- Added support for Vorbis streams demuxed by Haali and MPC-HC Splitters

LAV Video
- VC-1 decoding is now disabled by default
- Fixed behaviour of the Stream AR option
- The maximum number of decoding threads is now 16
- Free decoding buffers when the input pin disconnects to avoid big memory leaks


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.33.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.33.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.33-x64.zip)

Its mostly just $random bug fixes, but enough to warrant a new version, including some crash fixes.
VC-1 is now disabled by default because the decoder doesn't really offer any notable advantages over the default Windows decoder (WMVideo Decoder DMO). You can of course just re-enable it, if you want.

This does not yet include any of the performance enhancements for LAV Video, i branched those off and still working on them.

Take care.

Thunderbolt8
22nd August 2011, 20:48
thanks, the WMVideo Decoder works now (also for interlaced stuff, though still limping on 1 CPU :p)

ForceX
22nd August 2011, 21:13
Thanks for the quick fix and the new build. :)

msoltyspl
22nd August 2011, 21:27
Can you provide a small sample file with this problem?

Sure:

http://soltys.ziu.info/temp/a.ogm
http://soltys.ziu.info/temp/b.ogm

The first file has plain 'Japanese' and 'English' as language tags on audio track.
The second one uses 'Japanese[jpn]' and 'English[eng]' (seems more proper ?)

Of course, ogm is relatively ancient and obsoleted these days, though lots of stuff with it still around. Simple workaround is to just list the exact language tag value in the list, works as well.

nevcairiel
22nd August 2011, 21:36
Just "English" is better then "English[eng]". I can match full language names, i guess, but matching some construct like "English[eng]" is really alot harder.

VipZ
22nd August 2011, 21:40
Nev, I bet you gona want to add me to the ignore list with EVO :)

With the latest changes, VC1 within EVO doesn't work with the MS WM Decoder any more, in both Win 7 and XP. The chain all connects but playback doesn't start and is stuck at 0:00. LAV Video works as normal. There are no issues with M2TS in both Win7 or XP.

nevcairiel
22nd August 2011, 21:47
And i know why, but it'll take a few day to fix it, because it needs ffmpeg changes, not feeling like ugly hacks today. :)

VipZ
22nd August 2011, 21:50
Cool, we all know you don't like ugly hacks :)

Midzuki
22nd August 2011, 22:06
<OT>

Please define what would be a "beautiful" hack :)

</OT>

nevcairiel
22nd August 2011, 22:08
There are ugly hacks, and there are just hacks. Ugly hacks are those that you just put in, knowing that its just wrong and will be replaced in a few days.

Anyway, i actually fixed it in ffmpeg already. Its still a hack, but it does what i want it to. :)
The problem in this case was that apparently the EVO container does not contain key-frame infos, and ffmpeg relys on its parser to extract them from the frames. The parser is however off for EVOs, because it mangles the timestamps, so i had to introduce a new parsing mode in ffmpeg which still parses everything, but doesn't mangle the timestamps anymore -- and the WMV decoder relys on me indicating keyframes, otherwise it fails to work properly...

VipZ
22nd August 2011, 22:36
Thanks Nev, working perfectly :)

Plutotype
22nd August 2011, 23:00
VC-1 is now disabled by default because the decoder doesn't really offer any notable advantages over the default Windows decoder (WMVideo Decoder DMO). You can of course just re-enable it, if you want.


Hi Nev,
I would like to vote for enabling your VC-1 decoder as default.
Im not sure if also by the others, but in my setup, the WMVideo Decoder DMO causes A/V sync issues, when seeking/jumping in the timeline ( lipsync issues ). With VC-1 videos I mean.
Pluto

nevcairiel
22nd August 2011, 23:01
Hi Nev,
I would like to vote for enabling your VC-1 decoder as default.
Im not sure if also by the others, but in my setup, the WMVideo Decoder DMO causes A/V sync issues, when seeking/jumping in the timeline ( lipsync issues ). With VC-1 videos I mean.
Pluto

So enable it again. :)
I had some sync issues before as well, but try again with 0.33, it might as well just have vanished. :)

Thunderbolt8
22nd August 2011, 23:40
thanks, the WMVideo Decoder works now (also for interlaced stuff, though still limping on 1 CPU :p)
actually for some strange reason it doesnt work for a VC-1 1080p 23.976 BD here -.- (BBC source)

betaking
23rd August 2011, 02:48
To:nevcairiel,can you make lavaudio change decoder format write to Registry like it to lavvideo and lav splitters?
[HKEY_CURRENT_USER\Software\LAV\Splitter\Formats]
"4xm"=dword:00000000
"aac"=dword:00000000
or
[HKEY_CURRENT_USER\Software\LAV\Video\Formats]
"h264"=dword:00000000
"vc1"=dword:00000000
For example made ​​of this
[HKEY_CURRENT_USER\Software\LAV\Audio\Formats]
"aac"=dword:00000000

ageback
23rd August 2011, 03:03
To:nevcairiel,can you make lavaudio change decoder format write to Registry like it to lavvideo and lav splitters?
[HKEY_CURRENT_USER\Software\LAV\Splitter\Formats]
"4xm"=dword:00000000
"aac"=dword:00000000
or
[HKEY_CURRENT_USER\Software\LAV\Video\Formats]
"h264"=dword:00000000
"vc1"=dword:00000000
For example made ​​of this
[HKEY_CURRENT_USER\Software\LAV\Audio\Formats]
"aac"=dword:00000000
+1
That would be easier for other programs to call LAV Audio Config dialog.

lauhangwoo
23rd August 2011, 03:14
It's already planned.
http://code.google.com/p/lavfilters/issues/detail?id=9

betaking
23rd August 2011, 03:20
It's already planned.
http://code.google.com/p/lavfilters/issues/detail?id=9

but,still not change to last 0.34 git! :(

roytam1
23rd August 2011, 03:29
New nightly: http://roy.orz.hm/lavf-w32-nightlies/lavf-my110823-885aeb29.7z

local fix:
diff --git a/decoder/LAVVideo/LAVVideo.cpp b/decoder/LAVVideo/LAVVideo.cpp
index 9e9961d..0525738 100644
--- a/decoder/LAVVideo/LAVVideo.cpp
+++ b/decoder/LAVVideo/LAVVideo.cpp
@@ -597,7 +597,7 @@ HRESULT CLAVVideo::ReconnectOutput(int width, int height, AVRational ar)
if (!m_settings.StreamAR || num == 0 || den == 0) {
if (m_bForceInputAR) {
DWORD dwARX, dwARY;
- formatTypeHandler(m_pInput->CurrentMediaType().Format(), m_pInput->CurrentMediaType().FormatType(), NULL, NULL, &dwARX, &dwARY);
+ videoFormatTypeHandler(m_pInput->CurrentMediaType().Format(), m_pInput->CurrentMediaType().FormatType(), NULL, NULL, &dwARX, &dwARY);
num = dwARX;
den = dwARY;
m_bForceInputAR = FALSE;

nevcairiel
23rd August 2011, 05:50
New nightly: http://roy.orz.hm/lavf-w32-nightlies/lavf-my110823-885aeb29.7z

local fix:
diff --git a/decoder/LAVVideo/LAVVideo.cpp b/decoder/LAVVideo/LAVVideo.cpp
index 9e9961d..0525738 100644
--- a/decoder/LAVVideo/LAVVideo.cpp
+++ b/decoder/LAVVideo/LAVVideo.cpp
@@ -597,7 +597,7 @@ HRESULT CLAVVideo::ReconnectOutput(int width, int height, AVRational ar)
if (!m_settings.StreamAR || num == 0 || den == 0) {
if (m_bForceInputAR) {
DWORD dwARX, dwARY;
- formatTypeHandler(m_pInput->CurrentMediaType().Format(), m_pInput->CurrentMediaType().FormatType(), NULL, NULL, &dwARX, &dwARY);
+ videoFormatTypeHandler(m_pInput->CurrentMediaType().Format(), m_pInput->CurrentMediaType().FormatType(), NULL, NULL, &dwARX, &dwARY);
num = dwARX;
den = dwARY;
m_bForceInputAR = FALSE;


Something must be wrong with your checkout, that change is in the repository... :)

roytam1
23rd August 2011, 07:51
Something must be wrong with your checkout, that change is in the repository... :)

yeah. I recloned it again, rebuild and replaced the archive above.

madshi
23rd August 2011, 07:56
Hi Nev,
I would like to vote for enabling your VC-1 decoder as default.
Im not sure if also by the others, but in my setup, the WMVideo Decoder DMO causes A/V sync issues, when seeking/jumping in the timeline ( lipsync issues ). With VC-1 videos I mean.
Pluto
Why not trying to fix the AV sync issues instead of going back to a slower and less capable (interlaced) decoder? Of course the question is whether the AV sync issues are caused by the decoder or the splitter or by a "misunderstanding" between the splitter and decoder. I'd suggest to double check with other splitters to get an idea about whether it's a problem with the MS VC-1 decoder itself.

nevcairiel
23rd August 2011, 07:59
I believe the sync issues are fixed. I had that problem before as well, but some quick tests last night showed promising results.
The WMVideo decoder strongly relys on the proper signaling of sync points in the samples, but when i wrote that part, i basically copied that from the MPC-HC MPEG Splitter, which was wrong. I now changed it to detect key-frames in the actual content, and signal those as sync points, and playback greatly improved with the WMVideo decoder. I believe it also uses those sync points to sync its timestamps, which caused the desync before.

The only thing missing now is also detecting keyframes for MPEG-2 video...

fastplayer
23rd August 2011, 14:38
I'm not sure if this is 100% LAV-related but it brings MPC-HC down to its knees whereas its internal filters work fine.
Here are the steps to reproduce:
1. http://download.microsoft.com/download/e/a/d/eadb9b42-728b-42b0-bfdf-b472fa2a2464/Step_into_Liquid_1080.exe
2. Make sure "Rewind when done playing" is disabled in MPC-HC.
3. Start playback, seek to the near end of the video, wait until playback stops.
4. Now start playback by clicking on the video or pressing Space key.
5. Result: With MPC's internal filters/splitters, playback restarts as expected. Using LAVFilters, MPC-HC freezes 2 out of 3 times.

My setup: madVR 0.74 (windowed mode), LAV 0.33 (default settings), MPC-HC 3694.

Can anyone else reproduce this?

Edit: I narrowed it down to LAVVideo. If it's disabled, restarts are OK.

nevcairiel
23rd August 2011, 16:44
There is definitely something odd going on when using Microsofts WM ASF Reader as a source filter, which causes the hang you're seeing.
For some reason, it sends a data packet to decode, and at the same time, on another thread, its calling the Stop method on the filter, and eventually this results in a hang. Very odd.

I cleaned up some things that should stop the hang in this case, but still, its weird.

JarrettH
23rd August 2011, 16:55
I believe the sync issues are fixed. I had that problem before as well, but some quick tests last night showed promising results.
The WMVideo decoder strongly relys on the proper signaling of sync points in the samples, but when i wrote that part, i basically copied that from the MPC-HC MPEG Splitter, which was wrong. I now changed it to detect key-frames in the actual content, and signal those as sync points, and playback greatly improved with the WMVideo decoder. I believe it also uses those sync points to sync its timestamps, which caused the desync before.

The only thing missing now is also detecting keyframes for MPEG-2 video...

When I think of MPEG2 video, I think of DVDs :p:cool:

fastplayer
23rd August 2011, 17:03
There is definitely something odd going on when using Microsofts WM ASF Reader as a source filter, which causes the hang you're seeing.
For some reason, it sends a data packet to decode, and at the same time, on another thread, its calling the Stop method on the filter, and eventually this results in a hang. Very odd.

I cleaned up some things that should stop the hang in this case, but still, its weird.
I'm glad this all makes sense to you. :)
It's not a biggie though. I use the sample above only for testing and thought I'd report it. It seemed odd to me that MPC's internal decoder handles it just fine while LAVVideo stumbles over. Usually, it's the other way around! :D

Plutotype
23rd August 2011, 18:07
I believe the sync issues are fixed. I had that problem before as well, but some quick tests last night showed promising results.
The WMVideo decoder strongly relys on the proper signaling of sync points in the samples, but when i wrote that part, i basically copied that from the MPC-HC MPEG Splitter, which was wrong. I now changed it to detect key-frames in the actual content, and signal those as sync points, and playback greatly improved with the WMVideo decoder. I believe it also uses those sync points to sync its timestamps, which caused the desync before.

The only thing missing now is also detecting keyframes for MPEG-2 video...

The MS VC-1 decoder I use, is either from WMP12 or comes with the AMD Catalyst package. I have tested the one in ffdshow (wmv9) and the A/V lipsync issues when jumping in the timeline are exactly the same. The wmv9 decoder in ffdshow is not recommended at all - in my setup, when starting a movie or seeking in the timeline, it takes almost 5 seconds to start synchronised A/V playback ( its way too slow ).

Is there any other/updated MS VC-1 decoder which I can install and test?

Thanks

nevcairiel
23rd August 2011, 18:09
The MS decoder comes with WMP, and on Win7 there is no way to upgrade it, as it already comes with the latest as-is. :)

I mean the actual decoder, not the one in ffdshow. The filter called "WMVideo Decoder DMO"

Plutotype
23rd August 2011, 18:21
So I will stick to your libav-based VC-1 decoder.

madshi
23rd August 2011, 18:59
So I will stick to your libav-based VC-1 decoder.
Have you tried the "WMVideo Decoder DMO"? It works best for me.

Plutotype
23rd August 2011, 20:25
Have you tried the "WMVideo Decoder DMO"? It works best for me.

yes, it gives me occasional lipsync issue when seeking in a VC-1 video. Tested on Batman Begins, Blood Diamond and Eyes Wide Shut BD.

nevcairiel
23rd August 2011, 20:28
Did you test all that after LAV 0.33?

I tested batman begins earlier, and i couldn't spot any problems.

Plutotype
23rd August 2011, 20:45
Yes, I have 0.33, madVR 0.74, MPC-HC 1.5.3.3677, Reclock 1.8.7.7
WMP 12.0.7601.17514

The weird thing is, audio comes later than video, when the problem occurs.

According to madVR OSD, WMVideo Decoder DMO outputs in NV12 and LAVvideo in YV12. Is this correct?

pirlouy
23rd August 2011, 23:03
Have you tried the "WMVideo Decoder DMO"? It works best for me.
Just for my curiosity, and like it's not the first time you say it, why do you prefer this decoder ? Is it only because of CPU usage, or is there another advantage ??

But indeed, in my case, LAV 0.33 seems to have fixed the sync problem I had with some VC1 Blu-Ray (though it was Microsoft decoder's fault). Thanks.

@nevcairiel: can you post it at the end of this thread, when there's an update please ? or RSS or whatever please ? I've missed the 0.33 for example.

nevcairiel
24th August 2011, 06:08
Just for my curiosity, and like it's not the first time you say it, why do you prefer this decoder ? Is it only because of CPU usage, or is there another advantage ??


Its present on every system and can decode basically every stream.
It just works.

I use LAV CUVID, but if i wouldn't have a NVIDIA card, i would probably use the MS decoder.

@nevcairiel: can you post it at the end of this thread, when there's an update please ? or RSS or whatever please ? I've missed the 0.33 for example.

I always post a release announcement here in this thread.
http://forum.doom9.org/showthread.php?p=1521184#post1521184

madshi
24th August 2011, 07:19
Its present on every system and can decode basically every stream.
It just works.
Agreed. And it's faster than both the libav/ffmpeg and the Intel Media SDK software VC-1 decoders.

nevcairiel
24th August 2011, 09:34
Some news from the optimizations of the pixel format converters:

I noticed last night that i do not need to code converters for big-endian formats, hooray. ffmpeg always outputs in native endianness, and on x86 thats always little-endian. That saved alot of work and made me happy. :)
Last night, i wrote a new converter for YUV420 9/10bit -> YV12/NV12. Its again notably faster then the old one, especially for NV12 output.

Next up are converters for YUV420/422 9/10bit -> P010/P210, and YUV422 -> YUY2. When those are done, all common unscaled YUV conversions will have a optimized converter.

On the weekend, i will tackle chroma upscaling, YUV420 -> YUV422 -> YUV444 -> RGB (with entry and exit points at every step in the chain)
All upscaling will be done in 16-bit integer (RGB conversion with 32-bit intermediate results), and in the end dithered back down to the desired output bitdepth (currently always 8-bit, 10-bit output is only supported for untouched chroma)

I've been pondering on something, though. Is there some real (noticeable) quality loss when dithering the YUV to 8bit before the RGB conversion, or should i take the extra effort and build the RGB converter to actually work with 10-bit input pixels?

pirlouy
24th August 2011, 11:51
Its present on every system and can decode basically every stream.
It just works.
Yes, but EVR renderer works too. It displays all files. And that does not means it's the best one.

I use LAV CUVID, but if i wouldn't have a NVIDIA card, i would probably use the MS decoder.
People say GPU drivers caused different problems. And you said the advantage of LAV CUVID is deinterlacing, so if you only have VC1 from Blu-Ray, LAV Cuvid is not necessarily the best solution.

And it's faster than both the libav/ffmpeg and the Intel Media SDK software VC-1 decoders.
In my case, there's not a lot of difference (both at 20% for Harry Potter 2 in my case). The Intel one from madVR uses more CPU (30% for HP2).

Like LAV Splitter is based on ffmpeg, and MS decoder does not bring advantages (except the support of interlaced files I don't use), I prefer to stay with ffmpeg decoder (LAV seems to use a bit less CPU than madVR one). :-)

I always post a release announcement here in this thread.
http://forum.doom9.org/showthread.php?p=1521184#post1521184
Sorry. :/

nevcairiel
24th August 2011, 12:20
Yes, but EVR renderer works too. It displays all files. And that does not means it's the best one.

How a file is to be decoded is 100% specified, there are no differences in quality between decoders, so the comparison is kinda off.


People say GPU drivers caused different problems. And you said the advantage of LAV CUVID is deinterlacing, so if you only have VC1 from Blu-Ray, LAV Cuvid is not necessarily the best solution.

Blu-rays also contain VC-1 interlaced, especially documentaries and some concert discs. I just don't want to switch decoders when watching one of those.

Besides, i never had any real trouble with NVIDIA drivers. All complaining i hear is really mostly from ATI/AMD users, but i have no first-hand experience either way.


Like LAV Splitter is based on ffmpeg, and MS decoder does not bring advantages (except the support of interlaced files I don't use), I prefer to stay with ffmpeg decoder (LAV seems to use a bit less CPU than madVR one). :-)

Its a format designed by MS, so why would their decoder be bad? :)
Its faster (less CPU), and it supports more types of movies.

Anyway, in the end its your choice which decoder to use, and if you never watch VC-1 interlaced, then the ffmpeg decoder will probably be fine as well - i just don't think it has any advantages over the MS decoder, thats why its off by default now.
If interlaced support is added to ffmpeg (some day), i'll probably enable it again.

madshi
24th August 2011, 12:34
@pirlouy, I'm not really sure what you're trying to say. We've given you 2 good reason why we think the MS VC-1 decoder is the better default decoder: (1) Speed. (2) Interlaced decoding capability. So you're personally not interesting in either of these advantages. Ok, but what is your point? You want us to use the ffmpeg VC-1 decoder as default, although it's slower and less capable? That doesn't make any sense.

madshi
24th August 2011, 12:42
Some news from the optimizations of the pixel format converters:

I noticed last night that i do not need to code converters for big-endian formats, hooray. ffmpeg always outputs in native endianness, and on x86 thats always little-endian. That saved alot of work and made me happy. :)
Last night, i wrote a new converter for YUV420 9/10bit -> YV12/NV12. Its again notably faster then the old one, especially for NV12 output.

Next up are converters for YUV420/422 9/10bit -> P010/P210, and YUV422 -> YUY2. When those are done, all common unscaled YUV conversions will have a optimized converter.

On the weekend, i will tackle chroma upscaling, YUV420 -> YUV422 -> YUV444 -> RGB (with entry and exit points at every step in the chain)
All upscaling will be done in 16-bit integer (RGB conversion with 32-bit intermediate results), and in the end dithered back down to the desired output bitdepth (currently always 8-bit, 10-bit output is only supported for untouched chroma)
Sounds good to me! Will the chroma upscaling also support 10bit input?

I've been pondering on something, though. Is there some real (noticeable) quality loss when dithering the YUV to 8bit before the RGB conversion, or should i take the extra effort and build the RGB converter to actually work with 10-bit input pixels?
You'd have to implement dithering twice this way. I've no idea what happens to ordered dithering if you apply it twice. With random dithering (as used by madVR) applying dithering twice increases the noise floor.

nevcairiel
24th August 2011, 12:51
Sounds good to me! Will the chroma upscaling also support 10bit input?

Thats easy enough, because 10bit is stored in 16bit internally anyway, and i do need to do processing in 16-bit. I need 4 bit free space for the upscaling, so anything up to 12-bit can be natively processed with the algorithm i have in mind.

You'd have to implement dithering twice this way. I've no idea what happens to ordered dithering if you apply it twice. With random dithering (as used by madVR) applying dithering twice increases the noise floor.
Hm, yeah. I guess it won't be that much more work to actually support 10-bit input, for similar reasons as above. Just have to keep track of the number of bits that are actually valid, so i can apply the proper dithering and shifting at the end.

madshi
24th August 2011, 13:06
Maybe you can upconvert everything to 12bit first and then write routines only for that bitdepth? Then for the final step you'd need downconversion routines to 8bit, 9bit and 10bit, I guess.

Edit: Wait, this is all for RGB output, right? In that case you only need 8bit output, I guess, because there are no 9bit or 10bit RGB output FOURCCs. At least I don't know any. You could optionally output 16bit RGB, though.

nevcairiel
24th August 2011, 13:14
Yeah i thought about that, it adds one shift operation to every pixel, but i guess the performance difference using SSE2 is minimal, and simplifys the code a bit (the alternative would be to use a template and let the compiler generate three versions of the function for 8, 9 and 10bit each, without much special code).

While i have your attention, just to confirm my logic is alright.
Looking at the MPEG-2 Chroma position, for the 4:2:0 -> 4:2:2 conversion i would use a simple 75:25 interpolation. For the second step, the 4:2:2 -> 4:4:4, i would just use a 50:50 interpolation. Its not really a very fancy algorithm, but its similar to what ffdshow uses, and the quality seems alright. Or am i missing something?


Edit: Wait, this is all for RGB output, right? In that case you only need 8bit output, I guess, because there are no 9bit or 10bit RGB output FOURCCs. At least I don't know any. You could optionally output 16bit RGB, though.
Technically, yes. Although some renderers (Haali) only accept YUY2 (or RGB) input, so at least the 4:2:0->4:2:2 upsampling would be used there as well, but still limited to 8-bit.
Any conversions are really only for renderes or post-processing filters that don't know any better - and those will probably never understand 10bit.

Edit:
Technically, one could use D3DFMT_A2R10G10B10 as a FourCC, the MSDN claims its similar in usage, but i guess nothing supports it anyway.

madshi
24th August 2011, 13:39
While i have your attention, just to confirm my logic is alright.
Looking at the MPEG Chroma position, for the 4:2:0 -> 4:2:2 conversion i would use a simple 75:25 interpolation. For the second step, the 4:2:2 -> 4:4:4, i would just use a 50:50 interpolation. Its not really a very fancy algorithm, but its similar to what ffdshow uses, and the quality seems alright. Or am i missing something?
Hmmmm... I've never upscaled chroma like that, so I'm not 100% sure right now. But I guess it's ok that way.

Technically, yes. Although some renderers (Haali) only accept YUY2 (or RGB) input, so at least the 4:2:0->4:2:2 upsampling would be used there as well, but still limited to 8-bit.
Any conversions are really only for renderes or post-processing filters that don't know any better - and those will probably never understand 10bit.
Yeah, you're probably right.

Technically, one could use D3DFMT_A2R10G10B10 as a FourCC
True! Forgot about that...

Superb
24th August 2011, 13:43
Two genius guys talking. I feel like I'm watching The Big Bang Theory. Bazinga!

nevcairiel
24th August 2011, 13:54
Hmmmm... I've never upscaled chroma like that, so I'm not 100% sure right now. But I guess it's ok that way.

Well i suppose this might not be the absolute perfect quality, some complicated cubic interpolation might yield better results, but this will be fast, and people never complained about ffdshows interpolator (it actually uses 75:25 for the horizontal expansion as well, which seems quite odd to me, and would result in a chroma phase shift - assuming MPEG-2 siting - maybe ffdshow was designed against MPEG-1 chroma?)

Two genius guys talking. I feel like I'm watching The Big Bang Theory. Bazinga!

I hope that show is returning soon. :)

Mercury_22
24th August 2011, 16:12
@ Nev any chance that after you finish with this optimizations you'll take a look at DXVA ?
Cause since people have started to compare energy consumption and cpu / gpu utilization I've got curious and I've made a quick comparison (http://imageshack.us/g/51/x86evrcpmpc.png/) between LAVVideo - MPC-HC's internal - Microsoft DTV-DVD H264 decoders (on a 720p, 3285 Kbps /ac3 mkv file) using "GPU Observer – Sidebar Gadget" & "Intel Core Series – Sidebar Gadget" (http://blog.orbmu2k.de/) and the results (although not so accurate) speak for themselves
x86 EVR CPU GPU CPU % GPU % CPU Mhz GPU Mhz x86 EVR-CP CPU GPU CPU % GPU % CPU Mhz GPU Mhz
M_DTV-DVD 40.734 112.5 3 15 1357.8 750 M_DTV-DVD 95.9874 187.5 6 25 1599.79 750
MPC-HC 82.318 97.5 5 13 1646.36 750 MPC-HC 82.119 202.5 5 27 1642.38 750
LAV 272.1285 36 15 12 1814.19 300 LAV 320.8368 172.5 16 23 2005.23 750

x64 EVR CPU GPU CPU % GPU % CPU Mhz GPU Mhz x64 EVR -CP CPU GPU CPU % GPU % CPU Mhz GPU Mhz
M_DTV-DVD 41.4897 112.5 3 15 1382.99 750 M_DTV-DVD 106.209 202.5 6 27 1770.15 750
MPC-HC 42.1959 105 3 14 1406.53 750 MPC-HC 94.7352 202.5 6 27 1578.92 750
LAV 148.9959 46.2 9 28 1655.51 165 LAV 321.4125 195 15 26 2142.75 750

I've used MPC-HC 1.5.3.3697 x86 & x64 @ defaults + LAVAudio + LAVSplitter & EVR (and another test with EVR-CP + 10-bit in & out + FFPP)
Before starting the test(s) I've restarted my system and disabled Superfetch also no other service or program have been started / closed during test

So any thoughts :) ?

nevcairiel
24th August 2011, 16:33
The GPU hardware decoder does not show up in the GPU usage %, so the test is really pointless.
Of course will the software decoder use more CPU then the DXVA decoders. And what was this supposed to show now?

In the normal EVR case with LAV Video, the GPU even went into a lower power state, probably saving more energy then DXVA would. :)

Anyway, there are alot of DXVA decoders around, and since the decoding is done on the GPU, there really wouldn't be any performance or quality difference, so ... just use those decoders?

Something to consider:
Intels next generation (Ivy Bridge) will actually reduce power consumption quite significantly, while increase performance at the same time (Tri-Gate Transistors). So just maybe, those CPUs will actually be far more efficient then a big GPU? :D

madshi
24th August 2011, 17:24
Well i suppose this might not be the absolute perfect quality, some complicated cubic interpolation might yield better results, but this will be fast, and people never complained about ffdshows interpolator (it actually uses 75:25 for the horizontal expansion as well, which seems quite odd to me, and would result in a chroma phase shift - assuming MPEG-2 siting - maybe ffdshow was designed against MPEG-1 chroma?)
I think the 75:25 and 50:50 interpolation should be similar to bilinear interpolation, which should have a good quality/speed tradeoff for chroma upsampling. However, I agree with you that using 75:25 in both directions is not correct. Is should be 75:25, 25:75, 75:25, 25:75 in one direction and 100, 50:50, 100, 50:50 in the other direction.

One alternative would be a tent filter, using weights of 1, 2, 3, 4, 3, 2, 1 for neighboring pixels. The weights sum up to 16, so it should perform well, too, but of course it'd be noticeably slower than bilinear upsampling because you need to average many more values together.

Mercury_22
24th August 2011, 17:40
The GPU hardware decoder does not show up in the GPU usage %, so the test is really pointless...
Ups I didn't know that :confused: then what does GPU usage % show ? GPU - UVD - AVP ?

pirlouy
24th August 2011, 17:50
@pirlouy, I'm not really sure what you're trying to say. We've given you 2 good reason why we think the MS VC-1 decoder is the better default decoder: (1) Speed. (2) Interlaced decoding capability. So you're personally not interesting in either of these advantages. Ok, but what is your point? You want us to use the ffmpeg VC-1 decoder as default, although it's slower and less capable? That doesn't make any sense.
My point has always been to understand why you prefer MS decoder.
I'm sure you understand things better than me and of course I don't criticize your choice. But you said MS decoder uses less CPU, which is not what I've noticed in my case.
And yes, like ffmpeg works well in a lot of things (splitter, decoders), I prefer to rely on it, especially if the only difference (for me) is the support of interlaced files. I also like the fact it's an active project. It's the same kind of reasoning I do when using LAV splitter instead of Haali Splitter for example.

But it's ok, I've understood your points. :)

nevcairiel
24th August 2011, 17:54
Ups I didn't know that :confused: then what does GPU usage % show ? GPU - UVD - AVP ?

Just raw 3D GPU usage. On AMD, you cannot really view the usage of the decoder. On NVIDIA, GPU-Z shows the video decoder usage.

madshi
24th August 2011, 18:01
you said MS decoder uses less CPU, which is not what I've noticed in my case.
On my PC the MS decoder is significantly faster than ffmpeg. I can't get Blu-Rays to play smoothly with ffmpeg on my (rather old/slow) PC, while the MS decoder plays most Blu-Rays just fine for me.

6233638
24th August 2011, 19:39
On my PC the MS decoder is significantly faster than ffmpeg. I can't get Blu-Rays to play smoothly with ffmpeg on my (rather old/slow) PC, while the MS decoder plays most Blu-Rays just fine for me.The MS Video decoder always benchmarked quicker for me, but I was never able to actually get smooth playback of VC-1 Blu-rays using it. This has probably changed with newer iterations of MadVR and the introduction of the LAV Filters/Splitter since, however.

madshi
24th August 2011, 19:43
It might have to do with which splitter you're using. The internal MPC-HC splitter is known to make problems with VC-1 m2ts streams, when used with the MS VC-1 decoder.

nevcairiel
24th August 2011, 19:45
The MS Video decoder always benchmarked quicker for me, but I was never able to actually get smooth playback of VC-1 Blu-rays using it. This has probably changed with newer iterations of MadVR and the introduction of the LAV Filters/Splitter since, however.

The MPC-HC MPEG Splitter does not provide timestamps that work smoothly with the MS decoder. Heck, it doesn't even work properly with MPC-HCs own VC-1 decoder. :D

LAV Splitter (and Haali as well, i think) should work smoothly with the MS decoder - but most people using MPC-HC have traditionally always used the internal splitter for TS, and Haali only for MKV (granted, Haalis support for anything but MKV isn't that great)

STaRGaZeR
24th August 2011, 21:02
I think the 75:25 and 50:50 interpolation should be similar to bilinear interpolation

Isn't that the exact definition of bilinear interpolation applied to the MPEG-2 grid?

nevcairiel
24th August 2011, 21:32
It is, just vastly simplified because of the fixed factors.

nlnl
25th August 2011, 10:45
nevcairiel
What container would you recommend for DVD ripping? mkv, ts, vob ?
What your LAV family LAVes best of all :)?

nevcairiel
25th August 2011, 10:53
I would just put it in MKV, just because its easier then the others.

mzso
25th August 2011, 10:55
Hi!
It seems that LAV splitter doesn't work with Total Commander's lister for some reason. It caused TC to hang with max cpu usage. Well I guess so because it stopped happening after I unticked mp3 in the splitter.
By the way I remember people mentioning viewing/setting the priority of filters, what's a proper tool for that?

jmone
25th August 2011, 10:59
I'm home alone tomorrow for most of the day and I own Heroes season 1 on HD DVD so I can mess with it myself and see what I can come up with.

Hey - did you get a chance to have a look?
Thanks
Nathan

Andy o
25th August 2011, 11:07
In the normal EVR case with LAV Video, the GPU even went into a lower power state, probably saving more energy then DXVA would. :)

I think this largely depends on the card's energy savings capabilities (like PowerPlay and such). With my 5770, the consumption at the wall for my PC drops measurably from full (850/1200 MHz) to UVD (400/900), which DXVA locks the card into. From UVD to idle state (175/300 IIRC) it doesn't drop that much. Using madVR for example kicks the card into full speed. It's my experience that CPU usage doesn't affect power consumption as much as GPU. I got a Penryn C2Q 9450 running at standard speed (2.66).

nevcairiel
25th August 2011, 11:27
A high-end CPU has a TDP of 95w (i7 2600K), a high-end GPU has a TDP of beyond 250 W, and the average HTPC GPU has more then the 95w as well (Your 5770 is at around ~108W, the GTS 450 i use is at ~106W)

A rule to saving power is probably to simply not over-size the components. A high-end GPU will use more power in its full speed mode then a HTPC GPU.
Plus, CPUs get faster as well, pretty soon they can decode video without going into max performance mode, and gain efficiency with that.

Anyhow, if you care about power usage that much, there are plenty of screws to turn.
One thing is for sure, though. Buying new components just to save power doesn't pay, the time to get into a positive balance is just too long. ;)

SamuriHL
25th August 2011, 12:59
Hey - did you get a chance to have a look?
Thanks
Nathan

Sorry I didn't. I've been away from home all week for work. I'm heading back home later today so I'll see if I can look at it tomorrow.

STaRGaZeR
25th August 2011, 14:19
A high-end CPU has a TDP of 95w (i7 2600K), a high-end GPU has a TDP of beyond 250 W, and the average HTPC GPU has more then the 95w as well (Your 5770 is at around ~108W, the GTS 450 i use is at ~106W)

Keep in mind that TDP is not max or typical power consumption. Plus, different vendors define TDP in different ways.

mzso
25th August 2011, 15:02
Hi!
It seems that LAV splitter doesn't work with Total Commander's lister for some reason. It caused TC to hang with max cpu usage. Well I guess so because it stopped happening after I unticked mp3 in the splitter.
By the way I remember people mentioning viewing/setting the priority of filters, what's a proper tool for that?

No-one else experienced this? What was the problem then if not LAV?

Andy o
25th August 2011, 16:15
Nev, does LAV video apply decimation or IVTC automatically for repeated frames? I have some 24p content encoded on 30p. When using LAV video, ReClock reports 29.97 for a few seconds, then switches to 23.976 and it looks smooth running the display at 24p. When using madVR, ReClock reports 29.97 only.

nevcairiel
25th August 2011, 16:22
I don't think it does that, unless its hidden somewhere in ffmpeg itself.. but do you have a sample of such a file? :)

Andy o
25th August 2011, 16:43
It's happening with ffdshow too. Before I upload a sample (it's some old anime) I'm gonna do some more testing so nobody wastes their time. The avisynth script that I usually use for decimation mucks up this file. I suspect it's really 23.976 but somehow it's telling the decoder and mediainfo that it's 29.97. Regardless of decoder being used, simply if I run my display at 24 it plays smoothly, while running it at 60 it looks like 2-3 pulldown (doesn't look like a 1-1-1-2 pattern like most 24p content encoded in 30p show).

What confuses me is that ReClock can detect 23.976 with LAV and ffdshow, but not with madVR. I'm not sure how ReClock fits into the picture when using madVR's decoders though, for example if it can apply media correction without problem.

nevcairiel
25th August 2011, 16:45
ReClock and madVR for decoding are somewhat limited, i wouldn't suggest that combination. There are some known glitches with detection of the frame rate (usually with not detecting it at all, detecting the wrong one sounds new. :P)

Andy o
25th August 2011, 17:25
I'm thinking it might be a variable frame rate thing. I've tried remuxing and specifying manually the rate, but I'm getting unsynced audio. Definitely close to 23 or 24 rather than 29/30 though. Anyway, not your problem I guess :)

benus
25th August 2011, 18:43
Hi Nevcairiel

May I just ask you whether there is any possibility to output ac3 from aac on the fly usind LAV Audio Decoder.
There is countless amount of files on the internet with aac audio track, and even more people willing to use their HDMI or SPDIF output to stream it to the receiver.
I appreciate all your hard work.
Take care.

pirlouy
25th August 2011, 19:10
For HDMI or stereo files, it's useless.
But I think a matrix mixer is the first step before to think about converting to another format.
I'd advise to use ffdshow post-processing filter (but it does not work with MPC for the moment in my case)

DrivenByDemons
25th August 2011, 22:01
Just installed this filter package and have a few MKV's that the video seems to play way too fast on. Audio sounds fine but obviously loses sync very quickly. I tried troubleshooting and narrowed it down to the splitter. I removed the entire package and installed Haali's and everything played fine. Then tried installing only LAV audio and video without the splitter and it still worked fine. I did a quick search of this thread (so not to waste anyones time on something that's already been reported) and saw a few references about sync but nothing specific. Any thoughts or suggestions?

Carpo
25th August 2011, 23:48
would an nvidia 560 or 570 be better to use, i am considering upgrading my pc and want to get the best video card I can to aid in the video decoding

Andy o
25th August 2011, 23:57
If you want multichannel HDMI, there's no contest. The 570 doesn't have it (560 does).

rd1979
26th August 2011, 00:12
If you want multichannel HDMI, there's no contest. The 570 doesn't have it (560 does).

What? Why not? And what of the 580, and the 560 Ti?

6233638
26th August 2011, 01:38
would an nvidia 560 or 570 be better to use, i am considering upgrading my pc and want to get the best video card I can to aid in the video decodingIt's complete overkill for video decoding, but it works great with LAV CUVID and madVR (a video card won't do anything for LAV Decoder) if you want the card for something else like gaming.

If you want multichannel HDMI, there's no contest. The 570 doesn't have it (560 does).I don't know about the 560, but the 570 uses a mini HDMI connector rather than HDMI as standard. My card (and I assume others) came with a short (6" maybe) mini HDMI > HDMI cable.

nevcairiel
26th August 2011, 06:03
If you want multichannel HDMI, there's no contest. The 570 doesn't have it (560 does).

All recent NVIDIA cards have multichannel PCM over HDMI, but the 570 and 580 do not have HD bitstreaming.

nevcairiel
26th August 2011, 06:04
Just installed this filter package and have a few MKV's that the video seems to play way too fast on. Audio sounds fine but obviously loses sync very quickly. I tried troubleshooting and narrowed it down to the splitter. I removed the entire package and installed Haali's and everything played fine. Then tried installing only LAV audio and video without the splitter and it still worked fine. I did a quick search of this thread (so not to waste anyones time on something that's already been reported) and saw a few references about sync but nothing specific. Any thoughts or suggestions?

I haven't heard of this kind of problem with MKV files yet..
A sample file that shows this problem would be greatly appreciated, so it can be fixed.

Andy o
26th August 2011, 07:00
All recent NVIDIA cards have multichannel PCM over HDMI, but the 570 and 580 do not have HD bitstreaming.

Ah, right. Correction noted. WASAPI exclusive works OK too? I have had problems with it and a 9300 mobo and 9200m laptop, which have previous Nvidia multichannel HDMI devices.

Carpo
26th August 2011, 07:41
All recent NVIDIA cards have multichannel PCM over HDMI, but the 570 and 580 do not have HD bitstreaming.

And on that bombshell - its the 560 i'm going for :p

well this is the one I'm thinking of getting - GeForce GTX 560Ti OC 1024MB GDDR5

nevcairiel
26th August 2011, 08:01
If all you want is a HTPC, i would even go down to a 550, its still way too fast for a HTPC, but will save you money and possibly some energy.
The 560 would be better if you want some gaming performance as well.

Sadly the 500 series doesn't have a real HTPC GPU.

Carpo
26th August 2011, 08:03
560 will come with the system, I can't be bothered to build my system this time around, but i do have some games that would bring my old system and gfx card to its knees, so having the best of both worlds should be fine :) hoping on a core i7 2600K should improve my bluray/mkv playback too :)

nlnl
26th August 2011, 14:31
nevcairiel

Do you have any plans for DSD audio bitstreaming using HDMI (LAV audio + LAV splitter)?

Or this is theoretically impossible? Windows limits this bitstreaming?

nevcairiel
26th August 2011, 14:36
I don't have a soundcard nor a receiver that can either bitstream or receive DSD, and its probably not supported by any consumer HDMI PC device..

nlnl
26th August 2011, 14:56
I don't have a soundcard nor a receiver that can either bitstream or receive DSD, and its probably not supported by any consumer HDMI PC device..

HDMI 1.3 supports bitstreaming DSD and DST (compressed DSD) formats.
And for example my ONKYO 1007 reciever supports direct DSD decoding.

6233638
26th August 2011, 14:56
Ah, right. Correction noted. WASAPI exclusive works OK too? I have had problems with it and a 9300 mobo and 9200m laptop, which have previous Nvidia multichannel HDMI devices.Works fine. (my previous 9400 worked fine too - the 9300 is the same thing with lower clocks I believe?) What are your problems with it?

All recent NVIDIA cards have multichannel PCM over HDMI, but the 570 and 580 do not have HD bitstreaming.Ah I see. Considering that the majority of PCs cannot output stable/accurate 24/1.001 clocks, and you're better sending 24.000 from the PC using ReClock to handle the audio anyway (film is shot at 24fps, not 24/1.001) I'm not sure I see why anyone should care, other than to have a silly light turn on, on their receiver.

It doesn't seem to matter to the bitstreaming crowd, that TrueHD/DTSHDMA decoded to PCM is identical, they need that little light to tell them.

But people that are vocal about bitstreaming tend to be like those that insist on turning on all those picture-ruining features their new TV has because they paid for them, so why would they not use them?
hoping on a core i7 2600K should improve my bluray/mkv playback too :)
A 2600K is a complete waste of money in almost all use cases. A 2500K performs almost identically, with the exception of tasks which can actually take advantage of an additional four virtual cores. (almost nothing) In fact, many people find that 2500Ks will overclock higher than 2600Ks that have hyperthreading enabled. If you aren't overclocking, don't buy a K processor.

Honestly though, there is no need for a CPU/GPU combination that high performance for video playback, especially if you use CUVID to do the decoding. I was able to run old versions of madVR (before it got quick wit the addition of the full-screen exclusive mode) with the CPU doing the decoding on an old E5200/9400 system. With CUVID, I bet I could have done it with an even slower CPU.

The only thing other than video decoding that would require a fast CPU is upsampling audio with reclock, and that isn't so demanding with the new resampler. And if you insist on bitstreaming (a mistake in my opinion) you wouldn't be doing that anyway.

nevcairiel
26th August 2011, 14:59
HDMI 1.3 supports bitstreaming DSD and DST (compressed DSD) formats.
And for example my ONKYO 1007 reciever supports direct DSD decoding.

Sure, but what do you have in your PC to produce a HDMI signal? All the GPUs do not support it. Do you have some specialized HDMI sound card that does?

Even then, i don't know if Windows even supports it.
Anyway, i have no interest in supporting it.

robpdotcom
26th August 2011, 15:11
It doesn't seem to matter to the bitstreaming crowd, that TrueHD/DTSHDMA decoded to PCM is identical, they need that little light to tell them.
How about DTS (including DTS-HD MA) with a matrixed 6.1? Doesn't it contain a flag telling the decoder which sounds are supposed to be in the rear center? None of the software decoders play those back in 6.1, but an AVR will if you bitstream. You could use your receiver or maybe ffdshow to create the addition channel, but in that case, can you really say that decoding on the PC is the same as decoding on a receiver?

I've never seen any info that makes me think it's the same, so I want the option to bitstream those.

sneaker_ger
26th August 2011, 15:45
A 2600K is a complete waste of money in almost all use cases. A 2500K performs almost identically, with the exception of tasks which can actually take advantage of an additional four virtual cores. (almost nothing)

Leaving aside any bang for buck discussions, HT gains some 20% with x264 (http://forum.doom9.org/showthread.php?t=162103), which matters for many of the folks on this forum.

princewang
26th August 2011, 15:47
Is it a bug?

http://www.mediafire.com/i/?t5qj0hxvmz0na29

6233638
26th August 2011, 15:49
Leaving aside any bang for buck discussions, HT gains some 20% with x264 (http://forum.doom9.org/showthread.php?t=162103), which matters for many of the folks on this forum.Yeah, video encoding is about the only thing where hyperthreading really has an impact. For some reason, it didn't even occur to me that it would be quite relevant here...

Carpo
26th August 2011, 15:56
A 2600K is a complete waste of money in almost all use cases. A 2500K performs almost identically, with the exception of tasks which can actually take advantage of an additional four virtual cores. (almost nothing) In fact, many people find that 2500Ks will overclock higher than 2600Ks that have hyperthreading enabled. If you aren't overclocking, don't buy a K processor.

Honestly though, there is no need for a CPU/GPU combination that high performance for video playback, especially if you use CUVID to do the decoding. I was able to run old versions of madVR (before it got quick wit the addition of the full-screen exclusive mode) with the CPU doing the decoding on an old E5200/9400 system. With CUVID, I bet I could have done it with an even slower CPU.

The only thing other than video decoding that would require a fast CPU is upsampling audio with reclock, and that isn't so demanding with the new resampler. And if you insist on bitstreaming (a mistake in my opinion) you wouldn't be doing that anyway.

It's also for 3D work and games, plus you never know what is down the road :)

Thunderbolt8
26th August 2011, 16:10
film is shot at 24fps, not 24/1.001is this stated in a reliable source?

DrivenByDemons
26th August 2011, 17:04
I haven't heard of this kind of problem with MKV files yet..
A sample file that shows this problem would be greatly appreciated, so it can be fixed.

Sure, but I haven't chopped samples from vids since MKV has been around (used to use virtualdub but I'm guessing that may not work correctly). What's the best way to cut you out a sample, I'm guessing you don't want a 2 gig file.

STaRGaZeR
26th August 2011, 17:47
A 2600K is a complete waste of money in almost all use cases. If you aren't overclocking, don't buy a K processor.

Are there any decoding tests on a 2600K with HT on and off? I'd like to see the difference.

The K versions have something their non-K equivalents don't have: 3000 vs 2000 graphics. For 5 more, it's a no brainer.

6233638
26th August 2011, 17:49
is this stated in a reliable source?This "debate" comes up every few months. I'm sure the information can be found if you really want to know the background on it.

The short answer, is that 24/1.001 is a creation for home/broadcast so that it fits into 59.94 using 3:2 nicely, but the film itself is shot at 24.000 fps.

Quite a few Blu-ray releases (European, at least) are even 24.000 on the disc.


Are there any decoding tests on a 2600K with HT on and off? I'd like to see the difference.You aren't even going to stress the CPU with video decoding, you are only going to see benefits from HT with applications that can utilise more than four cores, at 100%. Many applications are actually slower with HT on, even. Photoshop cannot properly utilise more than 4 cores for example, and making more available to it slows the program down.

Video encoding, file compression, and a few other things can make use of HT, but the majority of applications/uses do not.

The K versions have something their non-K equivalents don't have: 3000 vs 2000 graphics. For 5€ more, it's a no brainer.He's putting a GTX 560/570 in there.

Carpo
26th August 2011, 17:49
Are there any decoding tests on a 2600K with HT on and off? I'd like to see the difference.

The K versions have something their non-K equivalents don't have: 3000 vs 2000 graphics. For 5 more, it's a no brainer.


sneaker_ger posted a link above - http://forum.doom9.org/showthread.php?t=162103 - don't know if that's what your looking for :)

STaRGaZeR
26th August 2011, 18:21
You aren't even going to stress the CPU with video decoding, you are only going to see benefits from HT with applications that can utilise more than four cores, at 100%. Many applications are actually slower with HT on, even. Photoshop cannot properly utilise more than 4 cores for example, and making more available to it slows the program down.

I know about all that, but I want to see actual results of HT on/off in multithreaded video decoding. Not because of 2500K vs 2600K, but because of the lower end models. I want to know if there's a point in investing in 2 cores+HT compared to 2 cores only. For example, a G840 looks very interesting.

sneaker_ger posted a link above - http://forum.doom9.org/showthread.php?t=162103 - don't know if that's what your looking for :)

Nope:

Are there any decoding tests on a 2600K with HT on and off? I'd like to see the difference.

nevcairiel
26th August 2011, 18:49
I did a quick test comparing 8 thread HT performance to 4 thread performance with HT off, and the 8 threads are around ~30% faster then the 4 threads.
Not sure if those numbers are really comparable on 4 to 8 cores, 2 to 4 might be more meaningful, as anything above 4 is really running into the limits in parallelism when decoding, and the benefits diminish fast.

STaRGaZeR
26th August 2011, 19:30
I did a quick test comparing 8 thread HT performance to 4 thread performance with HT off, and the 8 threads are around ~30% faster then the 4 threads.
Not sure if those numbers are really comparable on 4 to 8 cores, 2 to 4 might be more meaningful, as anything above 4 is really running into the limits in parallelism when decoding, and the benefits diminish fast.

Thanks for the test. That 30% is already a healthy boost. Not sure about your motherboard, but in mine you can disable cores, if you want to try that.

somy
27th August 2011, 15:30
Hi nevcairiel, thank you very much for the great filters. I normally use FFDShow (without DXVA) for decoding H264 and VC1 videos, and I particularly like the high quality YV12 to RGB conversion with dithering option. However this solution uses too much CPU resource which is not optimal for HTPCs based on ATOM or APU platform. The problem I have with DXVA is that the luma expansion in EVR renderer looks really bad with lots of banding when feeding NV12.
I'd like to ask whether the LAV video decoder uses DXVA and what are the benefits of LAV video decoder comparing to FFDShow in terms of picture quality?
Thank you very much!!

DXVA with EVR:
http://sunmaiblog.files.wordpress.com/2010/10/image5.png

FFDShow with dithering:
http://sunmaiblog.files.wordpress.com/2010/10/section-a-mp4-media-player-classic-home-cinema-v1-4-2668.png

6233638
27th August 2011, 17:47
Hi nevcairiel, thank you very much for the great filters. I normally use FFDShow (without DXVA) for decoding H264 and VC1 videos, and I particularly like the high quality YV12 to RGB conversion with dithering option. However this solution uses too much CPU resource which is not optimal for HTPCs based on ATOM or APU platform. The problem I have with DXVA is that the luma expansion in EVR renderer looks really bad with lots of banding when feeding NV12.
I'd like to ask whether the LAV video decoder uses DXVA and what are the benefits of LAV video decoder comparing to FFDShow in terms of picture quality?
Thank you very much!!

DXVA with EVR:
http://sunmaiblog.files.wordpress.com/2010/10/image5.png

FFDShow with dithering:
http://sunmaiblog.files.wordpress.com/2010/10/section-a-mp4-media-player-classic-home-cinema-v1-4-2668.pngHave you tried using madVR (http://forum.doom9.org/showthread.php?t=146228) for your video renderer? It uses your GPU for processing and handles levels conversions/scaling with much higher precision to avoid banding without putting a high load on the CPU.

somy
27th August 2011, 21:19
Hi, thanks for the reply.
MadVR work exellently except that it still disallows DXVA.
The only way to remove banding with DXVA is to set MPC-HC to use 10bits output.
Unfortunately, none of the above solution works in MediaPortal (as it lacks support for other renderers) if I want DXVA.

CruNcher
28th August 2011, 11:49
LAV Filters 0.33

LAV Splitter
- Improved compatibility with the MS WMVideo decoder
- Fixed the mediatype for raw PCM streams

LAV Audio
- Added support for Vorbis streams demuxed by Haali and MPC-HC Splitters

LAV Video
- VC-1 decoding is now disabled by default
- Fixed behaviour of the Stream AR option
- The maximum number of decoding threads is now 16
- Free decoding buffers when the input pin disconnects to avoid big memory leaks


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.33.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.33.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.33-x64.zip)

Its mostly just $random bug fixes, but enough to warrant a new version, including some crash fixes.
VC-1 is now disabled by default because the decoder doesn't really offer any notable advantages over the default Windows decoder (WMVideo Decoder DMO). You can of course just re-enable it, if you want.

This does not yet include any of the performance enhancements for LAV Video, i branched those off and still working on them.

Take care.

Nice, i moved to Win7 (64) now and im currently testing on the HD2000 (Sandy Bridge) part which seems to work perfectly with Microsofts DTV-Decoder for all supported formats in DXVA (i wonder why people found Microsofts Decoder a bad Interface to the GPU Hardware it works very well so far for being a default solution, not sure for what someone would need 3rd party solutions anymore (Cyberlink,Arcsoft)) after the first tests (except >4:2:0, 3D and the coming 10 bit evolution someday)), most other known decoder combinations brake with HD2000 (Sandy Bridge) entirely on more complex bitstreams looked @ 2 Engines VLC and MPC-HC (internal).
I can't wait to check Lav Splitter Interoperability with Micrsofts WMV Decoder though WMV3 MP@HL acceleration also seems to doesn't work on 7 @ least not outside of Microsofts WMP12 the same as on XP, seems Arcsoft are the only ones supporting this natively in their Decoder yet (unfortunately lav splitter gets unsync with it) :)

Andy o
28th August 2011, 12:21
Hi, thanks for the reply.
MadVR work exellently except that it still disallows DXVA.
The only way to remove banding with DXVA is to set MPC-HC to use 10bits output.
Unfortunately, none of the above solution works in MediaPortal (as it lacks support for other renderers) if I want DXVA.

I don't think there's any way to avoid this banding with DXVA. If you're using an NV card though, you can use CUDA decoding and then apply ffdshow's RGB conversion with the raw video filter. You can probably do something siilar for AMD with Cyberlink's video decoder in HAM mode.

CruNcher
28th August 2011, 16:16
Hmm does this have todo with the DXVA2 context and how DWM renders it ? if i drag a MPC-HC Window while playing with Microsofts Decoder in DXVA2 when moving the MPC-HC Window around (Classic Windows Style) and it's refreshing the EVR custom Overlay Position (every mouse move) it's smooth as butter (also Power Consumption stays steady) when using LAV Videos Software Decoding (Mpeg-2) it get's stucky with the same task and tearing becomes a real problem (on the Video Surface and Window as well) updating the EVR custom Playback Surface while it's moving around WMP12 shows the best result here.

No issue on Aero with this (Lav Video Mpeg-2), not as much overall though still seems to depend on the actual load of the decoding process it seems (Mpeg-2 works ok, H.264 doesn't and gets stucky with Lav Video on live drag even with Aero) :)

6233638
28th August 2011, 17:21
Hi, thanks for the reply.
MadVR work exellently except that it still disallows DXVA.
The only way to remove banding with DXVA is to set MPC-HC to use 10bits output.
Unfortunately, none of the above solution works in MediaPortal (as it lacks support for other renderers) if I want DXVA.Oh sorry, I thought you meant that the high quality RGB conversion was using too much CPU for your HTPC, not the video decoding itself.

If you have an Nvidia GPU, my recommendation would be to use LAV CUVID to decode to YV12/NV12, and madVR to do the RGB conversion/levels/scaling.

If you have an AMD GPU, I think you are stuck with using the CPU to decode to YV12/NV12 (LAV Video Decoder would be my recommendation) and letting madVR use your GPU to do the RGB conversion/levels/scaling. That should at least take some load off your CPU.

nevcairiel
28th August 2011, 18:07
In the end, either you have the CPU power to process the image, or you don't, and you have to use what the renderer offers you.
With MPC-HC, you can use some shaders that might potentially improve the situation, but that requires a quite powerful GPU, which you might not have if its a Atom system..

Andy o
28th August 2011, 19:18
Nev, is LAV Splitter supposed to work like this on subs? For dual audio with both same languages in subs, if I prefer one language for audio in the splitter options, it will choose the same language's subtitle if I leave the subs space blank, even though the other language is both first and default.

nevcairiel
28th August 2011, 19:19
yes its intended to work like that.

nautilus7
28th August 2011, 19:25
Thats a whole different topic, contextual selection based on the available audio...

DISCLAIMER: The contents of this post are ideas, and do not work like this (yet)

I guess i'll have to think about that a lot how to combine the two things.

Starting simple:

gre:off;*:gre

This is basically what Haali allows you to do, specify audio:subtitle pairs.
This configuration would get your Greek audio with no subs, or any audio with greek subs.

Now, how to add the forced subs into the logic?

gre:gre(f);*:gre
gre:gre(forced);*:gre
gre:gre|f;*:gre
gre:gre|forced;*:gre

Does any of that look sane to anyone? Syntax ideas?
In addition to "forced", there would of course also be "default" (or "d")
Nev, did you implemented this and i missed it or you haven't yet?

CruNcher
28th August 2011, 20:26
@ nev

http://www.mediafire.com/?ri4sdpjlafxxrry wav.new.ts <- the bbc hd cat lion test sequence causes a mpc-hc64.exe (1.5.3.3704, Evr Custom) crash with lav splitter 64 .033 here on Win7 MPC-HC64 internal splitter works combined with Microsofts DTV Decoder or Lav Video.
Somehow it feels like a regression with this file, though the crash doesn't happen on every playback sometimes it plays through still the MPC-HC64 internal splitter doesn't crash it once.

Hmm another issue though this time strange macroblocking with a Mpeg-2 bitstream also here MPC-HC64 internal splitter is ok, slowly this feels more like a compiler issue, though this bitstream is ok when using lav video + lav splitter instead of Microsofts DTV Decoder in DXVA2 mode so in this case might be more a interoperability issue with Microsofts DTV Decoder DXVA2 and lav splitter.

Both .ts streams also work fine with WMP12 on the HD 2000 Decoder so those issues don't seem hardware decoder related, and that both play fine in the combination MPC-HC64->Internal Splitter->Microsoft DTV-DVD Decoder->Evr Custom also indicate that something must be wrong on the Splitter side.

Andy o
28th August 2011, 21:43
yes its intended to work like that.

Is it because in your experience most people would prefer watching a dubbed track of the language they understand, rather than the original audio, if it's available? Cause I think people's attitudes are different in America (including Latin America) than in Europe (I know in Spain movies are dubbed in theaters).

nevcairiel
28th August 2011, 22:13
http://www.mediafire.com/?ri4sdpjlafxxrry wav.new.ts <- the bbc hd cat lion test sequence causes a mpc-hc64.exe (1.5.3.3704, Evr Custom) crash with lav splitter 64 .033 here on Win7 MPC-HC64 internal splitter works combined with Microsofts DTV Decoder or Lav Video.

That file has a subtitle track thats not compatible with MPC-HC. Its a DVB Subtitle track that just makes MPC-HCs subtitle renderer crash (probably because of a bug in the renderer). Also happens with MPC-HCs TS splitter for me, when you activate the subtitle track.

Of course it doesn't happen with any other player, because they don't have MPC-HCs subtitle renderer.

This is a known bug in the MPC-HC DVB Subtitle renderer, and not a bug in LAV Splitter.

Is it because in your experience most people would prefer watching a dubbed track of the language they understand, rather than the original audio, if it's available? Cause I think people's attitudes are different in America (including Latin America) than in Europe (I know in Spain movies are dubbed in theaters).

If you dont configure a subtitle language, you get the first track in the list. How is that any better? :)
If you want original audio with subtitles you understand, then how about just setting subtitle languages?

There is a whole new logic planned for subtitle selection, until i have time to implement that, i will not start doing small tweaks to the existing code.

Stephen R. Savage
29th August 2011, 00:32
nevcairiel,

LAV Splitter is not able to properly handle this AVI file (http://www.mediafire.com/?g5kwp4ho2k6pxnz).

Specifically:

- LAV Splitter + ffdshow results in choppy video with many dropped frames. LAV Splitter + LAV Video and MS AVI + ffdshow have no problems.

- Subtitles are recognized and selectable but they can not be displayed by VSFilter (both DVS and DVS-autoload). Subtitles, including fonts and advanced styling, work correctly with MS AVI.

CruNcher
29th August 2011, 07:49
That file has a subtitle track thats not compatible with MPC-HC. Its a DVB Subtitle track that just makes MPC-HCs subtitle renderer crash (probably because of a bug in the renderer). Also happens with MPC-HCs TS splitter for me, when you activate the subtitle track.

Of course it doesn't happen with any other player, because they don't have MPC-HCs subtitle renderer.

This is a known bug in the MPC-HC DVB Subtitle renderer, and not a bug in LAV Splitter.



If you dont configure a subtitle language, you get the first track in the list. How is that any better? :)
If you want original audio with subtitles you understand, then how about just setting subtitle languages?

There is a whole new logic planned for subtitle selection, until i have time to implement that, i will not start doing small tweaks to the existing code.

Argh yeah i forgot that subtitles are enabled by default in lav splitter and yeah both bbc hd samples crash with subtitles on.

Though whats up with this macroblocking & distored frames issue http://www.mediafire.com/?h93rl062889477p in combination with lav splitter and microsofts decoder on the HD 2000 Decoder, that is definitely not visible with the internal splitter ?

Also their is a issue with a H.264 Film .ts but that never shown problems on Nvidias Hardware decoder (XP and Lav Framework + DXVA + VMR9 Renderless) also it works fine with WMP12 by default :( but via MPC-HC64 EVR Custom and it doesn't matter neither the Internal Splitter or Lav splitter + Lav Audio it shows major frame drops like a slideshow on the HD 2000 Decoder (Microsofts DTV-DVD Decoder) it shows also some strange FPS 1262.92 in MPC-HC64 :(
With System Standard as Renderer it works fine with Lav Splitter + Microsofts DTV-Decoder DXVA2 with EVR Custom it doesn't in this EVR Custom combination :(
It's like Internaly EVR Custom would stuck trying to playback this speed (which is absolute wrong anyways in the first place) even the Diag display seems almost frozen.

Sample is here http://www.mediafire.com/?h93rl062889477p

http://img851.imageshack.us/img851/7737/wrongframerate.png

Though this really looks more Renderer related then Splitter as different Renderer show different results, EVR Custom and Sync both fail with this the normal EVR (Vista .Net 3) = System default for Vista/Win7 i guess, shows no issues.

PS: If i drag and move the playback window it renders normal too fast but it updates, though continuously shaking isn't really a optimal solution ;)

Andy o
29th August 2011, 07:56
If you dont configure a subtitle language, you get the first track in the list. How is that any better? :)
If you want original audio with subtitles you understand, then how about just setting subtitle languages?

There is a whole new logic planned for subtitle selection, until i have time to implement that, i will not start doing small tweaks to the existing code.

Not complaining, it seems one of my sub streams was incorrectly labeled anyway. I see what you're saying though.

jbcain
30th August 2011, 03:22
Symptoms: 5 minute pauses every 15mins or so while watching bluray MKVs (made with makemkv). the computer is NOT frozen during this time, just the video/audio, but randomly just starts playing again with coherant audio but wrong paced video at first, then resyncs ~15secs upon replaying

Testing bed: WMC with lav, MPCHC with lav, mpchc with lave + madvr, all have same symptoms

Equipment: win7 x64, i5 960, 8gigs of ram, ssd main drive, 5400rpm hitachi's, nvidia 550ti


Is this a LAV issue (that's what i have it narrowed down to) or an nvidia thing?

weird side note: in graphstudio, im showing the video decoder as "ms dtv-dvd decoder" even though lav is pref + 3 and MS dtv-dvd is set to norm -1.

Emulgator
30th August 2011, 16:09
jbcain, maybe the last Win7DSFilterTweaker will help you to get lav preferred.

Com DAC
30th August 2011, 19:50
First let me say that these filters are amazing. My HTPC is performing better than before. There is only one thing that I'm having an issue with and hopefully someone can help me out. I have a few MKV files that have two audio streams in them. The first stream is stereo and is for only the first minute or two of the file and the second is 5.1 for the remaining of the file. With LAV Filters the file opens and plays the first stero stream but then plays nothing for the rest of the file. As a work around I've installed ffdshow tryouts and just enabled the AC3 audio decoding but idealy I would like to get rid of ffdshow completely as it appears to cause issues with my TV tuners (didn't find out that ffdshow was my problem until I uninstalled it to install LAV Filters).

Does anyone know how to get the LAV Filters to work with this type of file or a better option than ffdshow tryouts to get the audio to work?

FYI I'm using Windows Media Center on Windows 7 and LAV Filters 0.33

Thank you

nevcairiel
30th August 2011, 20:05
Windows Media Center/Player has an issue with changing the number of channels during playback, and it just breaks then.

With ffdshow, i bet you have a fixed speaker matrix configured, and any streams get output as such, no matter how many source channels?
LAV Audio in contrast will always switch to the right count of channels (which doesnt work with WMC/WMP)

Options to upmix/downmix to a fixed speaker count are planned for the future, which would potentially solve this issue.

jbcain
30th August 2011, 23:05
jbcain, maybe the last Win7DSFilterTweaker will help you to get lav preferred.

Thank you. that definately got LAV preferred but guess what... still the pause. I guess i'll have to try another set of codecs and see how they react. I had lav + cuvid + madvr working at one time and it was a beautiful thing. :(

nevcairiel
31st August 2011, 09:31
nevcairiel,

LAV Splitter is not able to properly handle this AVI file (http://www.mediafire.com/?g5kwp4ho2k6pxnz).

Specifically:

- LAV Splitter + ffdshow results in choppy video with many dropped frames. LAV Splitter + LAV Video and MS AVI + ffdshow have no problems.

- Subtitles are recognized and selectable but they can not be displayed by VSFilter (both DVS and DVS-autoload). Subtitles, including fonts and advanced styling, work correctly with MS AVI.

I guess from the filename that its H264 in AVI?
H264 in AVI needs some special logic in the decoder, which LAV Video detects properly, and hence it works. ffdshow also has a detection for that, however its detection does not work properly with LAV Splitter, therefor it'll not switch to the special AVI mode. Its really a ffdshow bug (ffdshow also has other issues with H264 in AVI, like a desync when multi-threading - with any splitter)

I could probably fix it on the splitter side, but it wouldn't be a good fix, so i really recommend to report this problem to ffdshow. The underlying problem is that LAV Splitter converts all H264 to the "AVC1" format as used by MKV and MP4. AVI and MPEG-TS use the so-called AnnexB format with the "H264" FourCC. ffdshow only properly handles AVIs if it receives the video in that format. I do however think that converting it to "AVC1" is the right choice, because its more commonly supported and easier to handle.

I'm looking at the subtitle issue, its probably because AVI isn't really designed to have subtitles. :D
Why do people even use AVI for these kind of files? I don't get it.

But i figured out why subs don't work, and i'll fix it (Edit: I did.)

Blight
31st August 2011, 12:59
Bug Report:
If the LAV Video Decoder filter is registered with the system (not using the installer, just "regsvr32 LAVVideo.ax") causes microsoft's graphedit to crash when browsing the DirectShow filter list.
If I unregister the filter (regsvr32 /u LAVVideo.ax) graphedit's directshow filter browsing works again.

Note:
The crash only occurs when trying to expand the DirectShow section of the filter listing.

nevcairiel
31st August 2011, 13:05
Bug Report:
If the LAV Video Decoder filter is registered with the system (not using the installer, just "regsvr32 LAVVideo.ax") causes microsoft's graphedit to crash when browsing the DirectShow filter list.
If I unregister the filter (regsvr32 /u LAVVideo.ax) graphedit's directshow filter browsing works again.

Note:
The crash only occurs when trying to expand the DirectShow section of the filter listing.

Thats a bug in Microsofts GraphEdit, and there is nothing i can do to fix it.
GraphEdit crashes when a decoder has more then about ~110 subtypes. The only solution would be to remove some subtypes, but that limits the functionality of LAV Video, so not going to happen.

GraphStudio to the rescue! :)

clsid
31st August 2011, 13:17
I could probably fix it on the splitter side, but it wouldn't be a good fix, so i really recommend to report this problem to ffdshow. The underlying problem is that LAV Splitter converts all H264 to the "AVC1" format as used by MKV and MP4. AVI and MPEG-TS use the so-called AnnexB format with the "H264" FourCC. ffdshow only properly handles AVIs if it receives the video in that format. I do however think that converting it to "AVC1" is the right choice, because its more commonly supported and easier to handle.
So should "h264_on_MPEG2_system" be set to true in case of LAV Splitter and AVI with mt AVC1?
(TvideoCodecLibavcodec.cpp, line 365)

Midzuki
31st August 2011, 13:18
Thats a bug in Microsofts GraphEdit, and there is nothing i can do to fix it.
GraphEdit crashes when a decoder has more then about ~110 subtypes.

Hummm, very interesting info, :thanks: for the enlightenment :)

The only solution would be to remove some subtypes, but that limits the functionality of LAV Video, so not going to happen.

*thumbs up*

GraphStudio to the rescue! :)

Not in the case of MpegSplitter.ax :devil: If I click the Properties button in the filter list window, that's OK, but if I place the filter itself into the main window, and afterwards I choose "Properties" through the context menu, then Graphstudio crashes. :helpful:

nevcairiel
31st August 2011, 13:29
So should "h264_on_MPEG2_system" be set to true in case of LAV Splitter and AVI with mt AVC1?
(TvideoCodecLibavcodec.cpp, line 365)

Nope that won't work, that flag also assumes it is actually H264 in AnnexB, as it would be from MPEG-TS.

What should work would be setting "dont_use_rtStop_from_upper_stream" to false. If i'm not mistaken, it should then use the timestamps directly from the source.
Something simple like this (line 391 changed):


dont_use_rtStop_from_upper_stream = ((sourceFlags&SOURCE_NEROAVC && sourceExt != L"avi") || avctx->codec_tag==FOURCC_MPG1 || avctx->codec_tag==FOURCC_MPG2) && avctx->codec_tag!=FOURCC_THEO;


Or change it in TffdshowVideoInputPin to not set SOURCE_NEROAVC when its AVI.

No promises, all untested. :)

Blight
31st August 2011, 13:41
nev:
Thanks. Did you try notifying anyone at microsoft about this bug?

nevcairiel
31st August 2011, 13:44
The bug is so old, i really didn't bother. (And i wouldn't know where to go)

The MPC-HC standalone decoders have some code to actually limit the number of subtypes so GraphEdit doesn't crash. That code is probably from around 2006, so people have known about the issue for ages. If someone notified MS however, i don't know.

CruNcher
31st August 2011, 20:06
@nev
It seems that Lav Splitter causes a Problem with TMT5 registering the Audio filter causes major problems in TMT5 loading times seems to interfere with Arcsofts own Directshow Chain, though even without it the load performance is mediocre @ best, guess that's the price to pay for a thumbnailed media management (last played files ect) ;)

nevcairiel
31st August 2011, 20:39
If a commercial player breaks just because you install some other DirectShow component .. its too bad for that commercial player.

Portioli
1st September 2011, 00:57
hello to nev and everybody else.
i recently installed lav video decoder and i have some questions.
i am still an ATI user.
what are these settings? which boxes should be checked and which unchecked?

http://i.imgur.com/EmKuD.jpg

do i have to change any settings in madvR?
which are the optimal settings for madvr when using LAv video?
i care only for PQ
all my files are .mkv/.m2ts
output is set @ 4:4:4 Full RGB through CCC
my display is already calibrated.
i was using ffdshow with default settings till yesterday (only yv12 checked)

for software de-interlacing, do i still have to add ffdshow raw video filter?


thanks in advance.

mindbomb
1st September 2011, 01:19
yea, you need ffdshow raw for software deinterlacing.

the defaults are fine for lav video.

Portioli
1st September 2011, 07:57
hello mindbomb

did you write this (http://www.avsforum.com/avs-vb/showthread.php?t=1357375)guide?

are you this guy?

one more question, as long as lav video decoder works pretty fine,
is there any particular reason to change my ATI to nvidia except
1080i files (that can also be de-interlaced by ffdshow)?

nevcairiel
1st September 2011, 08:29
If you're happy with the decoder, it doesn't matter what video card you use.
Hardware deinterlacing is the only thing really missing with ATI for a "perfect" setup with madVR, but if your CPU is fast enough for decoding + YADIF deinterlacing, and the quality of YADIF is good enough for you, then by all means, go for it.

------------------------

A small update on the progress for the improved pixel format conversions:

All "unscaled" YUV conversions are done and optimized.
Unscaled means all formats that don't require changing of the chroma resolution.

Following are implemented using SSE2 enhancements (especially dithering is *alot* faster then before)

YUV 4:2:0 -> YV12/NV12
YUV 4:2:0 10bit -> P010
YUV 4:2:0 10bit -> YV12/NV12 (dithered)

YUV 4:2:2 -> YUY2/UYVY
YUV 4:2:2 10bit -> P210

YUV 4:4:4 -> AYUV
YUV 4:4:4 10bit -> Y410
YUV 4:4:4 10bit -> AYUV (dithered)

Whats missing is YUV 4:2:2 10bit -> YUY2, but getting a sample for that is kinda hard. Once a file surfaces for this, it'll be easy to add.
I'm still a bit stuck on the chroma upsampling for the RGB conversions. I'll hopefully get to it soon. Paid work has been quite taxing the last week.

In theory i would also need chroma subsampling, for 4:4:4/4:2:2 content and your renderer/processor only accepts 4:2:0, but thats a rather rare case and i'll let swscale keep doing that.

Mercury_22
1st September 2011, 09:57
@nev I have a rather strange problem with LAVVideo
When I'm trying to use it in my DVB(-C) Software: TERRATEC Home Cinema (http://www.terratec.net/de/produkte/treiber/produkte_treiber_de_18392.html), LAVVideo it's working OK for MPEG-2 streams but for H.264 I just have a black screen (with audio)
The other decoders: MainConcept (TerraTec), Microsoft DTV-DVD, Arcsoft are working ok with both MPEG-2 and H.264

I know that this seems rather unimportant problem but maybe it's (revealing) related to a more important one:p

Anyway if you got some time ...:D

Boltron
1st September 2011, 12:42
A quick question for you guys. I use MPC-HC, LAV Splitter/Video/Audio, madVR. I rip everything to .mkv and almost all is progressive. There is a series I want to watch that is interlaced mpeg2. I added raw ffdshow video as the last external filter in MPC-HC and selected only the deinterlacing module. This works just fine for the interlaced stuff.

So, my question. Is ffdshow in raw mode going to affect the vast majority of progressive stuff I watch? Is it going act as a simple pass through? I do not want to compromise pq in any way.

Finally, I assume that ffdshow Output and RGB Conversion settings will come into play. I set output as YU12 and have full range 0-255 (I have a LCD TV) input/output, is this OK?

Oh, and Nev, you are awesome :) That goes for Madshi too if you are reading this. And Madshi, where is your Donate button? I've bought Nev a couple of pints, I'd love to buy you one too.

mindbomb
1st September 2011, 14:17
hello mindbomb

did you write this (http://www.avsforum.com/avs-vb/showthread.php?t=1357375)guide?

are you this guy?


yea, thats me. i recently simplified that guide too.





So, my question. Is ffdshow in raw mode going to affect the vast majority of progressive stuff I watch? Is it going act as a simple pass through? I do not want to compromise pq in any way.

Finally, I assume that ffdshow Output and RGB Conversion settings will come into play. I set output as YU12 and have full range 0-255 (I have a LCD TV) input/output, is this OK?


no, ffdshow shouldn't affect progressive video you have it set like that.
and the RGB conversion actually shouldn't come into play. you should have everything checked under output, and if you are using madvr, this generally means you should be outputting yv12.

mzso
1st September 2011, 14:50
If you're happy with the decoder, it doesn't matter what video card you use.
Hardware deinterlacing is the only thing really missing with ATI for a "perfect" setup with madVR, but if your CPU is fast enough for decoding + YADIF deinterlacing, and the quality of YADIF is good enough for you, then by all means, go for it.

How much are hardware deinterlacers better? (and why?) By the way, if ffdshow has yadif couldn't LAV too?

nevcairiel
1st September 2011, 15:18
How much are hardware deinterlacers better? (and why?) By the way, if ffdshow has yadif couldn't LAV too?

The GPU is highly optimized for these kind of tasks, and therefor can run a much more expensive algorithm while still keeping up the frame rate.
NVIDIA uses a temporal-spatial adaptive interpolation, which IMHO beats YADIF in quality flat out, no question.

I don't have a set of comparison images at hand, but just visually comparing the two results yourself on an actual movie will most likely convince you. ;)

And yes, LAV could have YADIF, and i do have plans to offer it eventually, but it'll be some time.

Midzuki
1st September 2011, 15:21
By the way, if ffdshow has yadif couldn't LAV too?

That would be a job for LAV Video Processor :D But as we all know very well, wishing is easier than doing :p Anyway, I woud not like to meet another filter that sees no difference between uncompressed video and RLE-compressed bitmaps ;)

CruNcher
1st September 2011, 15:31
The GPU is highly optimized for these kind of tasks, and therefor can run a much more expensive algorithm while still keeping up the frame rate.
NVIDIA uses a temporal-spatial adaptive interpolation, which IMHO beats YADIF in quality flat out, no question.

I don't have a set of comparison images at hand, but just visually comparing the two results yourself on an actual movie will most likely convince you. ;)

And yes, LAV could have YADIF, and i do have plans to offer it eventually, but it'll be some time.

Pssst don't let Dide hear that :D

Thunderbolt8
1st September 2011, 15:39
is there a speed difference when watching videos just based on the cuda version a GPU uses?

BloodySword
1st September 2011, 16:14
Bug in Splitter: FFDShow does not decode AAC splitted by LAV Splitter out of a raw .aac file. Any other decoder does not work. Only LAV Audio decoder accepts this stream and decodes it.

clsid
1st September 2011, 16:45
A small update on the progress for the improved pixel format conversions:

All "unscaled" YUV conversions are done and optimized.
Unscaled means all formats that don't require changing of the chroma resolution.

Following are implemented using SSE2 enhancements (especially dithering is *alot* faster then before)

YUV 4:2:0 -> YV12/NV12
YUV 4:2:0 10bit -> P010
YUV 4:2:0 10bit -> YV12/NV12 (dithered)

YUV 4:2:2 -> YUY2/UYVY
YUV 4:2:2 10bit -> P210

YUV 4:4:4 -> AYUV
YUV 4:4:4 10bit -> Y410
YUV 4:4:4 10bit -> AYUV (dithered)

Whats missing is YUV 4:2:2 10bit -> YUY2, but getting a sample for that is kinda hard. Once a file surfaces for this, it'll be easy to add.
I'm still a bit stuck on the chroma upsampling for the RGB conversions. I'll hopefully get to it soon. Paid work has been quite taxing the last week.

In theory i would also need chroma subsampling, for 4:4:4/4:2:2 content and your renderer/processor only accepts 4:2:0, but thats a rather rare case and i'll let swscale keep doing that.Is the fallback to swscale also used when a user has an old CPU (without SSE2)?
FYI, there is a patch on the libav mailinglist with optimizations for the current (slow) conversions. It is supposed to give a ~6x speedup.

Can you add support for PNG in MOV? That is one of the last things missing with regard to mov playback. I can provide a sample in case you need one.

nevcairiel
1st September 2011, 16:48
Bug in Splitter: FFDShow does not decode AAC splitted by LAV Splitter out of a raw .aac file. Any other decoder does not work. Only LAV Audio decoder accepts this stream and decodes it.

ffdshow also works if you set it to libavcodec for decoding, its all the libfaad2 decoders that fail without the init data.
The more important question, which other splitter makes it work?

Is the fallback to swscale also used when a user has an old CPU (without SSE2)?

Not right now, but its easy enough to do.
However, thats really too old for me to worry about much. :)
I can add the check, but i guarantee nothing for pre-SSE2 CPUs.


FYI, there is a patch on the libav mailinglist with optimizations for the current (slow) conversions. It is supposed to give a ~6x speedup.

That'll still be slower then a very specialized algorithm like i implemented them, however good to know someone is improving things.



Can you add support for PNG in MOV? That is one of the last things missing with regard to mov playback. I can provide a sample in case you need one.

A sample would be good.

Cudo
1st September 2011, 16:57
If all you want is a HTPC, i would even go down to a 550, its still way too fast for a HTPC, but will save you money and possibly some energy.
The 560 would be better if you want some gaming performance as well.

Sadly the 500 series doesn't have a real HTPC GPU.I believe Asus is making excellent HTPC ones: ENGT520 SILENT/DI/1GD3(LP) and ENGT520 SL/DI/512MD3(LP). They also support HD bitstreaming through HDMI.

nevcairiel
1st September 2011, 16:59
I believe Asus is making excellent HTPC ones: ENGT520 SILENT/DI/1GD3(LP) and ENGT520 SL/DI/512MD3(LP). They also support HD bitstreaming through HDMI.

The 520 is too slow.
Even NVIDIA admitted that it isn't fast enough for full video playback of interlaced material.

Cudo
1st September 2011, 17:04
^ +1, I didn't know that.

Xaurus
1st September 2011, 18:43
How much are hardware deinterlacers better? (and why?) By the way, if ffdshow has yadif couldn't LAV too?
Just my 2 cents:

There is a world of difference between hardware deinterlacing and YADIF. For example, with LAV CUVID I get no combing or artefacts what so ever and it's smooth as silk except for a few panning issues (which applies to both methods). I would never go back to software deinterlacing.

Stephen R. Savage
1st September 2011, 19:10
Just my 2 cents:

There is a world of difference between hardware deinterlacing and YADIF. For example, with LAV CUVID I get no combing or artefacts what so ever and it's smooth as silk except for a few panning issues (which applies to both methods). I would never go back to software deinterlacing.

Imo, there's still nothing that beats (Q)TGMC, which can even be run in realtime at up to 720p with marginally reduced quality. Unlike other deinterlacing methods, motion-compensation processes can actually recover "lost" information from adjacent frames.

@nevcairel: I want to ask r.e. the new colorspace conversions, are they free from issues with hue shift like the ones in ffdshow for 10-bit --> 8-bit conversion? I have some 10-bit H.264 encodes that were created with dithertools, and presumably free from 8->10 errors.

Edit: Never mind, downconversion is bit-exact between ffdshow and LAV, leaving the source of the ever-present hue shift still unknown.

nevcairiel
1st September 2011, 19:40
Imo, there's still nothing that beats (Q)TGMC, which can even be run in realtime at up to 720p with marginally reduced quality. Unlike other deinterlacing methods, motion-compensation processes can actually recover "lost" information from adjacent frames

The only interlaced content i watch are Blu-rays, which are 1080i, and the hardware deinterlacer is the only high-quality adaptive algorithm that works in realtime on those.
It does actually do some sort of motion compensation, but the vendors are not too keen on disclosing implementation details.

Edit: Never mind, downconversion is bit-exact between ffdshow and LAV, leaving the source of the ever-present hue shift still unknown.

Right now it is the same as ffdshows, the next version (thats when those new conversions actually make it in) will have mathematically perfect conversion from 10 to 8 (plain down-shift with dithering)

Thunderbolt8
2nd September 2011, 08:47
can you get this one always to play fine? http://www.mediafire.com/?8y4afgs2yf20td6 (sample of South Pacific BBC 1080i25 VC-1)

seems to be acting up sometimes, not sure whether due to splitter, WMV DMOdecoder or maybe LAV audio

hoborg
2nd September 2011, 09:16
Offtopic question:
I got new TV with HDMI input, so i connect it with my HTPC (Radeon 6450) by HDMI and set sound over HDMI.
But now i have some problems with multichanels audio - some chanels are nearly mutted. Before i used analog stereo speakers without any problem.
I am using LAV audio decoder -> ReClock on WinXP.
Is it possible somehow downmix mutlichannels to stereo? I didnt found such option anywhere in WinXP/ReClock/LAV audio decoder setting.
I think this should fix the problem.

CruNcher
2nd September 2011, 09:42
can you get this one always to play fine? http://www.mediafire.com/?8y4afgs2yf20td6

seems to be acting up sometimes, not sure whether due to splitter, WMV DMOdecoder or maybe LAV audio

The issue looks familiar same problem as with the Beyonce sample back then it stops @ the beginning only seeking is making it to play (most probably damaged @ the beginning) :)
Though you should see that VC-1 Timestamp correction is on Auto else you would get a Black screen even after seeking.
But this doesn't seem like a Big problem not as heavy at least as my demonstrated MPC-HC EVR Custom & Sync problem here http://mirror05.x264.nl/CruNcher/mpc-hc/ (please wait for it to be fully loaded i still have to improve the progressive streaming @ the 1:35 mark those aren't performance issues @ recording but VBV problems with Quicksync :( )

Kotik
2nd September 2011, 11:37
Offtopic question:
I got new TV with HDMI input, so i connect it with my HTPC (Radeon 6450) by HDMI and set sound over HDMI.
But now i have some problems with multichanels audio - some chanels are nearly mutted. Before i used analog stereo speakers without any problem.
I am using LAV audio decoder -> ReClock on WinXP.
Is it possible somehow downmix mutlichannels to stereo? I didnt found such option anywhere in WinXP/ReClock/LAV audio decoder setting.
I think this should fix the problem.

Yes it is possible by adding ffdshow as postprocessing and configuring it to do the downmixing to stereo.

All this till Nev adds downmixing in LavAudio.

hoborg
2nd September 2011, 11:59
All this till Nev adds downmixing in LavAudio.
Donwmix is planned in LAV audio decoder? Good :)

nevcairiel
2nd September 2011, 12:12
You can also just not use WASAPI, and let the Windows mixer do downmixing - at least on Win7 that will work pretty good.

hoborg
2nd September 2011, 12:15
You can also just not use WASAPI, and let the Windows mixer do downmixing - at least on Win7 that will work pretty good.

My HTPC is based on WinXP. If i am not wrong, WASAPI is not present on WinXP.

kalston
2nd September 2011, 12:43
My HTPC is based on WinXP. If i am not wrong, WASAPI is not present on WinXP.

Correct. For now I use ffdshow to do it.

CruNcher
2nd September 2011, 13:00
depending on the hardware your htpc consists off you should really take a move to NT 6 Vista/Win7 into consideration it solves a lot off multimedia issues and doesn't make third party stuff needed for everything (also the possibility of less interoperability problems with different Hardware when using acceleration) :)
The Power saving also works much better it doesn't cause extreme spikes as on XP, that lowers the risk of unexpected framedrops also High Resolution timers are a improvement here (Hardware dependent).

hoborg
2nd September 2011, 13:11
@CruNcher:
Yes, i known.But...
I spend a lot of time to configure my HTPC to work as i would like to be working, identify freezing durning wake up (thanks to TV card) + found a solution - for this i created "plugin" for MCE standby tools which disable/enable TV card durning standby/resume + "fullresume" while HTPC resume for recording. I even created my own "codec pack" - SAF, just to fit my HTPC needs :). Setup remote contorler to work with my HTPC so even my wife can easilly control it (i dont have mouse/keybard connected), silent DVD drive even after wakeup, modify WinXP to not look like windows, media sharing ower network, be able to start/exit games by remote and control them by gamepad (like game console),etc, etc,... Right now i am very happy how it is working, moving to Win7 x86 is planned, but i really don't want to start from begin :)

BTW, i have two small kids home, so i really dont have much time to do such a big task :D

betaking
2nd September 2011, 14:56
found a bug lavfilters can not use lavvideo to decoder this mpeg file!
Format : MPEG-PS
File size : 63.1 MiB
Duration : 4mn 13s
Overall bit rate : 2 086 Kbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 1
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 4mn 13s
Bit rate : 1 789 Kbps
Maximum bit rate : 1 800 Kbps
Width : 352 pixels
Height : 240 pixels
Display aspect ratio : 4:3
Frame rate : 29.970 fps
Standard : NTSC
Color space : YUV
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.706
Stream size : 54.1 MiB (86%)

Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Duration : 4mn 13s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Compression mode : Lossy
Delay relative to video : -67ms
Stream size : 7.74 MiB (12%)
MPC-HC only use lav splitter and lav audio!

pirlouy
2nd September 2011, 15:11
Yes it is possible by adding ffdshow as postprocessing and configuring it to do the downmixing to stereo.

All this till Nev adds downmixing in LavAudio.
Except that it does not work in my case. Even if I add ffdshow audio processor (in MPC-HC "prefer" external filter), it never
shows after LAV audio. I don't understand. :/

You can also just not use WASAPI, and let the Windows mixer do downmixing - at least on Win7 that will work pretty good.
Windows does that automatically or there's an option ?!!

fastplayer
2nd September 2011, 15:20
Windows does that automatically or there's an option ?!!
Just select the correct speaker-setup in the Control Panel settings of your sound-card and let the mixer do the rest.

nevcairiel
2nd September 2011, 15:44
I mostly finished the implementation of the new RGB converter, roughly modelled after ffdshows HQ implementation, but with two key enhancements:

- Faster and more accurate chroma upscaling (ffdshow assumes MPEG-1 Chroma siting, while most content is using the MPEG2/H264 siting)
--- I do plan to support the MPEG1 version as well at some point in time, but its no pressing issue
- Increased processing bitdepth to natively support 9/10bit content

The code will always use dithering, because i've found that disabling dithering doesn't yield a worthy performance increase.
My implementation is not yet multi-threaded, but i'm not sure if thats actually needed. I'll see about that.

Below some performance numbers from my i7 2600k, decoding and processing a 1080p 4:2:0 H264 movie

- Decoding w/ YV12 output: 253 fps
- Old low-quality RGB conversion: 235 fps
- Old high-quality RGB conversion: 40 fps
- New RGB conversion: 180 fps
- New RGB conversion without dithering: 183 fps

And for fun:
- New RGB conversion in Debug mode: 20 fps.
Don't watch stuff with a debug version, people! :)

Speaking of multi-threading, anyone know a simple threadpool implementation that does not require me to use boost? :p

Xaurus
2nd September 2011, 15:49
nevcairiel,

Is this anything that is beneficial for us LAV CUVID users? :)

Thunderbolt8
2nd September 2011, 15:50
please add multitheading if possible, there are other tweaks like sharpening or deinterlacing (ffdshow) or VC-1 decoding which are all only single threaded and already take a good amount of power from 1 core. more of such filters & co. which only work with 1 core will eventually lead to speed problems which could be avoided with multithreading support

nevcairiel
2nd September 2011, 16:23
I will eventually offer some post-processing, at first only the filters implemented in libavfilter (mostly for yadif), anything else .. we'll see.
I would like to do some plugin type thing, maybe it'll happen. Not soon, though.

Personally, i just don't use post-processing much.

roytam1
2nd September 2011, 16:44
I mostly finished the implementation of the new RGB converter, roughly modelled after ffdshows HQ implementation, but with two key enhancements:

- Faster and more accurate chroma upscaling (ffdshow assumes MPEG-1 Chroma siting, while most content is using the MPEG2/H264 siting)
--- I do plan to support the MPEG1 version as well at some point in time, but its no pressing issue
- Increased processing bitdepth to natively support 9/10bit content

The code will always use dithering, because i've found that disabling dithering doesn't yield a worthy performance increase.
My implementation is not yet multi-threaded, but i'm not sure if thats actually needed. I'll see about that.

Below some performance numbers from my i7 2600k, decoding and processing a 1080p 4:2:0 H264 movie

- Decoding w/ YV12 output: 253 fps
- Old low-quality RGB conversion: 235 fps
- Old high-quality RGB conversion: 40 fps
- New RGB conversion: 180 fps
- New RGB conversion without dithering: 183 fps

And for fun:
- New RGB conversion in Debug mode: 20 fps.
Don't watch stuff with a debug version, people! :)

Speaking of multi-threading, anyone know a simple threadpool implementation that does not require me to use boost? :p

This one uses pthread. But I wonder if it will work in windows.
http://code.google.com/p/cppthreadpool/

Or maybe this one:
http://www.codeproject.com/KB/threads/threads.aspx

Or this one:
http://code.google.com/p/spserver/downloads/detail?name=threadpool-0.2.1.src.tar.gz&can=2&q=

In short, people like having their own wheels.

Qaq
2nd September 2011, 18:02
Except that it does not work in my case. Even if I add ffdshow audio processor (in MPC-HC "prefer" external filter), it never
shows after LAV audio. I don't understand. :/
Make sure you have Uncompressed - all supported in ffdshow audio - codecs.

Superb
2nd September 2011, 18:06
Below some performance numbers from my i7 2600k, decoding and processing a 1080p 4:2:0 H264 movie

- Decoding w/ YV12 output: 253 fps
- Old low-quality RGB conversion: 235 fps
- Old high-quality RGB conversion: 40 fps
- New RGB conversion: 180 fps
- New RGB conversion without dithering: 183 fps

And for fun:
- New RGB conversion in Debug mode: 20 fps.
Don't watch stuff with a debug version, people! :)What about ffdshow's RGB (low/high quality) conversion? How fast (fps) is it on your machine (for this file)?

Snowknight26
2nd September 2011, 18:30
Just select the correct speaker-setup in the Control Panel settings of your sound-card and let the mixer do the rest.

If the input channel count is greater than the output channel count then the extra channels are dropped. No downmixing occurs.

nevcairiel
2nd September 2011, 18:38
What about ffdshow's RGB (low/high quality) conversion? How fast (fps) is it on your machine (for this file)?

ffdshows conversion is multi-threaded, the comparison wouldn't work.

The only meaningful numbers:

ffdshow with YV12 output: 216 fps
ffdshow with RGB: 200 fps

For a real comparison, wait until i implemented multi-threading. :p

I actually just increased LAV Videos RGB performance as well.
Its now at 220 fps with RGB output, in comparison to 253 fps with YV12.

If the input channel count is greater than the output channel count then the extra channels are dropped. No downmixing occurs.

The DirectSound mixer on Win7 does downmixing.

On XP, that depends on your sound card drivers.

mindbomb
2nd September 2011, 19:16
I will eventually offer some post-processing, at first only the filters implemented in libavfilter (mostly for yadif), anything else .. we'll see.
I would like to do some plugin type thing, maybe it'll happen. Not soon, though.

Personally, i just don't use post-processing much.

i dont use postprocessing much either, but if lav video had yadif, i imagine nearly 100% of ppl using lav video with madvr would use it.

BloodySword
2nd September 2011, 19:40
ffdshow also works if you set it to libavcodec for decoding, its all the libfaad2 decoders that fail without the init data.
The more important question, which other splitter makes it work?

Oh, i see. Is the libavcodec decoder as good as the libfaad2 one? Does it decode SBR-Hints?

The splitter was the MPA-Splitter from GABEST. I can look if I can provide the version of his splitter wich I had. I think I did a backup of the old 100000 splitters before using LAV ;). But I never would go back to these xD.

Sorry, the file MPASplitter.ax does not have any version information.

nevcairiel
2nd September 2011, 19:43
As far as i know, SBR is supported by avcodecs aac decoder.

I can still try to construct the proper codec setup data, not sure how much work it would be to find the right values.

pirlouy
2nd September 2011, 19:46
Make sure you have Uncompressed - all supported in ffdshow audio - codecs.
But I don't want the ffdshow audio decoder; I only want the ffdshow processor... :/

BloodySword
2nd September 2011, 19:49
As far as i know, SBR is supported by avcodecs aac decoder.

I can still try to construct the proper codec setup data, not sure how much work it would be to find the right values.

I would test it, but I don't have SBR-AAC at the moment. :/
I'll just trust and believe you! xD

ASAK the Gabset source is on sourceforge. You can take a look at it and reimplement (not copy and paste) it. ;)

Superb
2nd September 2011, 20:21
ffdshows conversion is multi-threaded, the comparison wouldn't work.

The only meaningful numbers:

ffdshow with YV12 output: 216 fps
ffdshow with RGB: 200 fps

For a real comparison, wait until i implemented multi-threading. :p

I actually just increased LAV Videos RGB performance as well.
Its now at 220 fps with RGB output, in comparison to 253 fps with YV12.Wow. So you actually surpassed ffdshow already, even w/o multi-threading. :O
Amazing work.
Can't wait for the numbers after you add multi threading.

Midzuki
2nd September 2011, 20:26
@ pirlouy, this is what works over here:

1) dis-able "uncompressed" in the audio decoder

2) en-able "uncompressed" in the audio processor

3) with Graphstudio, or RadLight Filter Manager, set the merit of the audio processor to 0x00800000 or greater

4) reboot, or logoff and logon

5) enjoy :)

nevcairiel
2nd September 2011, 20:31
Wow. So you actually surpassed ffdshow already, even w/o multi-threading. :O
Amazing work.
Can't wait for the numbers after you add multi threading.

First, to rule out any misunderstandings:
LAV Video already uses multi-threading for decoding, its only about the RGB converter, which is right now single-threaded.

Continuing in the text..

Well, its not 100% fair.
LAV Video will overtax your CPU, using <#cores * 1.5> number of threads, while ffdshow uses a maximum of <#cores> for decoding. So with that rule, LAV Video is faster, only because it uses more decoding threads (and of course more CPU power)

Comparing with LAV Video forced to the same number of threads as ffdshow:

8 threads:

LAV Video:
- YV12: 216 fps
- RGB output: 193 fps

ffdshow:
- YV12: 216 fps
- RGB: 200 fps

1 thread:

LAV Video:
- YV12: 55 fps
- RGB output: 49 fps

ffdshow:
- YV12: 54 fps
- RGB: 52 fps

Note that these are the number of decoding threads, ffdshows RGB converter is always multi-threaded, you really cannot turn that off for a fair 1:1 comparison. :)
Anyhow, multithreading the RGB converter gives a small advantage, i would say it cuts the required processing time about in half. I'll look into adding it tomorrow, should be fairly easy.

Snowknight26
2nd September 2011, 21:24
The DirectSound mixer on Win7 does downmixing.

Have any more details on this? As far as I can see that doesn't happen at all. If 6-channel audio is passed to the default audio renderer, the audio renderer reports the audio stream as having nChannels = 6 and consequently (for a 2-channel device) 4 channels are dropped.

mindbomb
2nd September 2011, 22:07
go to control panel, sound, right click on your sound device, and go to configure speakers.
then select stereo.

e-t172
2nd September 2011, 22:37
Have any more details on this? As far as I can see that doesn't happen at all. If 6-channel audio is passed to the default audio renderer, the audio renderer reports the audio stream as having nChannels = 6 and consequently (for a 2-channel device) 4 channels are dropped.

No. That doesn't happen if your audio device is correctly configured. If the audio device is set to stereo, then the Windows mixer will downmix. Assuming you're not using WASAPI Exclusive or Kernel Streaming, of course.

CruNcher
3rd September 2011, 00:36
This mixed 64/32 Bit environment is strange, i successfully registered the 64 Bit components but i have problems with the 32 Bit ones :(

http://img546.imageshack.us/img546/9343/registerfail.th.png (http://img546.imageshack.us/img546/9343/registerfail.png)

PS: Funny the Installer fails registering the 64 Bit components, though the 32 bit components register with it crazy :P

Ahhh ok get it syswow64 and system32 are reversed

Snowknight26
3rd September 2011, 00:43
No. That doesn't happen if your audio device is correctly configured. If the audio device is set to stereo, then the Windows mixer will downmix. Assuming you're not using WASAPI Exclusive or Kernel Streaming, of course.

Guess I was wrong. Seems that ffdshow's mixer has incorrect matrix coefficients for downmixing as they definitely don't match the Windows mixer's.


On a side note, LAV Splitter doesn't parse the 'test_audacity.wav' file in this zip (http://stfcc.org/misc/lavfilters_wav_samples.zip).

mindbomb
3rd September 2011, 02:36
edit: not a lav issue.

mindbomb
3rd September 2011, 19:22
nev, can you put in the option to make lav video handle raw formats in future versions?

that way, we can, for example, use the RGB conversion with lav cuvid or cyberlink ham?

nevcairiel
3rd September 2011, 19:24
I currently have no concrete plans to support raw video input, but maybe one day..

Midzuki
3rd September 2011, 19:37
On a side note, LAV Splitter doesn't parse the 'test_audacity.wav' file in this zip (http://stfcc.org/misc/lavfilters_wav_samples.zip).

Q.: Should LAV Splitter start supporting b0rked .WAV files? :rolleyes:

A.: Of course it shouldn't ;)

nevcairiel
3rd September 2011, 19:38
That .wav file actually worked for me. Its only missing some information in the media type, so it requires LAV Audio and doesn't connect directly to the renderer.

Of course, i'm using a development version, maybe something changed in ffmpeg that wasnt in the last release.

STaRGaZeR
4th September 2011, 01:50
nev, MPEG-4 ASP (DivX 5 and Xvid at least) in matroska causes video corruption when seeking. The problem is in the splitter, MPC's and Haali are fine. Is this a known issue or do you need a sample?

Also seeking is quite a bit slower than both of them with matroska in general, if the video has long GOPs. As if LAVS was waiting till the next keyframe or something.

nevcairiel
4th September 2011, 06:59
Somehow those two symptoms don't match. If its waiting for the next key-frame, how can there be corruption? :D

I know that Matroska seeking is a bit slow on oddly muxed files, right now it'll always seek to the nearest Cue point and take it from there, which can take quite some time. Luckily most people mux their MKVs sanely with enough Cue points for smoother seeking.
I do have plans and ideas how to improve that. To avoid corruption, it does have to find a key-frame to start with, though.

Anyhow, i can't seem to find a Xvid in MKV, all i have are in .avi, so a sample which directly shows the corruption would be good.
I'll then look at it when i work on the seeking issues, which should be relatively soon. (After the next release)

betaking
4th September 2011, 07:15
Somehow those two symptoms don't match. If its waiting for the next key-frame, how can there be corruption? :D

I know that Matroska seeking is a bit slow on oddly muxed files, right now it'll always seek to the nearest Cue point and take it from there, which can take quite some time. Luckily most people mux their MKVs sanely with enough Cue points for smoother seeking.
I do have plans and ideas how to improve that. To avoid corruption, it does have to find a key-frame to start with, though.

Anyhow, i can't seem to find a Xvid in MKV, all i have are in .avi, so a sample which directly shows the corruption would be good.
I'll then look at it when i work on the seeking issues, which should be relatively soon. (After the next release)

I have one files about Xvid in MKV!but is very big!:rolleyes:
and lavfilters can not use lavvideo to decoder this mpeg file!
Format : MPEG-PS
File size : 63.1 MiB
Duration : 4mn 13s
Overall bit rate : 2 086 Kbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 1
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 4mn 13s
Bit rate : 1 789 Kbps
Maximum bit rate : 1 800 Kbps
Width : 352 pixels
Height : 240 pixels
Display aspect ratio : 4:3
Frame rate : 29.970 fps
Standard : NTSC
Color space : YUV
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.706
Stream size : 54.1 MiB (86%)

Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Duration : 4mn 13s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Compression mode : Lossy
Delay relative to video : -67ms
Stream size : 7.74 MiB (12%)

nevcairiel
4th September 2011, 07:39
Media Info is really not helpful. Either post the media type (maybe its as simple as that), or a sample of the file.

betaking
4th September 2011, 07:55
Media Info is really not helpful. Either post the media type (maybe its as simple as that), or a sample of the file.

OK! sample download here!
http://hotfile.com/dl/128806918/a301be7/THEME_PK.mpg.html

Carpo
4th September 2011, 08:15
I know that Matroska seeking is a bit slow on oddly muxed files, right now it'll always seek to the nearest Cue point and take it from there, which can take quite some time. Luckily most people mux their MKVs sanely with enough Cue points for smoother seeking.


In mkvmerge you have the options for cue points as, default, only for I frames, for all frames, and none - which would you suggest people use? Normally I just leave it on default

nevcairiel
4th September 2011, 09:19
I dunno what default does, but i guess it might be fine. Its mostly pretty old files or files not muxed with mkvmerge that have those issues.
It also depends on your encode how big GOPs are / how often a key frame is inserted.

Less key-frames may give you slightly smaller files, but of course without key-frames you cannot seek.

nevcairiel
4th September 2011, 09:21
OK! sample download here!
http://hotfile.com/dl/128806918/a301be7/THEME_PK.mpg.html

That file plays just fine with LAV Video, with both LAV Splitter and the MPC-HC MPEG Splitter.

Maybe something that was fixed in the latest version, try again with the next release.

VipZ
4th September 2011, 10:51
Nev, do you have any plans to do a status page for LAV Video showing input format and colour conversions etc in use?

betaking
4th September 2011, 11:19
That file plays just fine with LAV Video, with both LAV Splitter and the MPC-HC MPEG Splitter.

Maybe something that was fixed in the latest version, try again with the next release.

i Enabled mpeg1 decoder on lavvideo,but mpc-hc still use MPEG VIDEO DECODER by System embedded!:confused:

BloodySword
4th September 2011, 13:15
Only I-Frames is good because some dumb splitters or decoders may cause the named "corruption".
I try to not use mkv at all, because I don't like its design.

kerimcem
4th September 2011, 13:19
mkv and flv thumbnails not open show :( added lav codec ?
great codec thanks..

STaRGaZeR
4th September 2011, 14:37
Somehow those two symptoms don't match. If its waiting for the next key-frame, how can there be corruption? :D

I know that Matroska seeking is a bit slow on oddly muxed files, right now it'll always seek to the nearest Cue point and take it from there, which can take quite some time. Luckily most people mux their MKVs sanely with enough Cue points for smoother seeking.
I do have plans and ideas how to improve that. To avoid corruption, it does have to find a key-frame to start with, though.

Anyhow, i can't seem to find a Xvid in MKV, all i have are in .avi, so a sample which directly shows the corruption would be good.
I'll then look at it when i work on the seeking issues, which should be relatively soon. (After the next release)

With ASP, you have corruption and fast seeking.
With everything else (that's why I said in general, but it's H.264 mainly), you have no corruption and slow seeking if the GOPs are long. Maybe it's always slow, but only noticeable with long GOPs, I can't know that. x264 with most presets will produce files with up to 250 frames between keyframes. That's more than 10 seconds of 23.976 video, so go figure.

It should be possible to do it better, since other splitters provide both faster seeking and no corruption.

ASP in MKV sample here: http://www.mediafire.com/?2rwv3ua3138sz78

nevcairiel
4th September 2011, 14:41
With a fast software decoder (and a fast CPU), 250 frames shouldn't be a big issue. On my system, decoding 250 frames takes about 1 second, and thats the worst case, but i do see longer seeking delays on some files, so i know that something else is going wrong, and i already have some ideas what, and i do plan to look into that soon.
With a hardware decoder, those 250 frames can take a few seconds to decode though (they typically top out around 70-80 fps on 1080p), so a higher delay is certainly possible.

Thanks for the sample, the problem is easily reproducible, that should make fixing much easier.

Stephen R. Savage
4th September 2011, 16:03
nevcairiel: Is there a reason LAV Video won't connect to DVDs? It doesn't seem to be related to CSS, as I can't get it to load for decrypted discs either.

nevcairiel
4th September 2011, 16:11
nevcairiel: Is there a reason LAV Video won't connect to DVDs? It doesn't seem to be related to CSS, as I can't get it to load for decrypted discs either.

Supporting DVDs requires some special magic in the video decoder, which i just didn't put any priority on.

SamuriHL
4th September 2011, 16:24
Supporting DVDs requires some special magic in the video decoder, which i just didn't put any priority on.

If it was supported does that mean we could render it with madVR?

nevcairiel
4th September 2011, 16:55
If it was supported does that mean we could render it with madVR?

no idea, probably not.

STaRGaZeR
4th September 2011, 20:45
With a fast software decoder (and a fast CPU), 250 frames shouldn't be a big issue. On my system, decoding 250 frames takes about 1 second, and thats the worst case, but i do see longer seeking delays on some files, so i know that something else is going wrong, and i already have some ideas what, and i do plan to look into that soon.
With a hardware decoder, those 250 frames can take a few seconds to decode though (they typically top out around 70-80 fps on 1080p), so a higher delay is certainly possible.

Thanks for the sample, the problem is easily reproducible, that should make fixing much easier.

The problem is that it doesn't seem to be playback speed related. For example, imagine a file with keyframes at frames 1000 and 1250. Before the seek I was in frame 500. If I seek to frame 1100, it seeks instantly to frame 1100 and audio plays from there. But the screen freezes with frame 500 until, at normal playback speed, frame 1250 is reached. Then video is resumed. This can perfectly be 5+ seconds of screen freeze while audio is playing in the back. With other splitters you can clearly see that previous frames are decoded very fast until you reach frame 1100 as you say, or that they seek instantly to it, with LAVS it seems that it just waits until the keyframe is reached, then resumes playback. Pure speculation right here, but that is what it looks like.

nevcairiel
4th September 2011, 20:49
LAV Filters 0.34

LAV Splitter
- Improve playback of VC-1 in EVO
- Support for SSA subtitles in AVI
- Support for H264 in VFW mode in MKV

LAV Video
- New optimized pixel format converters (faster and more accurate)
- New YUV->RGB converter
- Support for PNG video


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.34.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.34.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.34-x64.zip)

I finished implementing the YUV -> RGB converter and all important YUV -> YUV converters. There are quite some significant speed ups in this version, especially if you're dealing with dithering (10bit content, 8bit output).

RGB
The new RGB converter is also working nicely, using bilinear interpolation and high-precision RGB conversion.
It supports the BT.601, BT.709 and SMPTE 240M transfer matrices, and properly handles both TV and PC range input and output. I did not add options to configure the input format (levels/matrix), because i do hope that files are properly encoded. I wouldn't want to switch that setting around on every file i play, now would i.

Quality
In theory, its mathematically slightly more accurate then ffdshows HQ RGB option. In reality, i couldn't detect any difference between the two. Note that LAV Video uses the proper chroma siting for H264/MPEG2, while ffdshow seems to assume the "old" chroma siting used by MPEG1/H263. This is a very minor difference, and like i said, i didn't see the difference.

Performance
The converter itself is really fast, and in addition its also multi-threaded. I did get performance numbers slightly above ffdshows values out of it, and any modern system should be able to use it fluidly.

Features
In addition to all the "usual" features, it supports native 9/10-bit input, without any notable degredation. It can output TV or PC range, or an untouched range (as the YUV was). I decided to set the default to PC range, because thats how most other filters and renderers work. It'll also let the renderer know which range is used, however only madVR understands this hint as of now.

Now, why would you use RGB instead of native YUV output?
The thing is that alot of renderes by default have a pretty bad chroma upsampling. I'm talking about EVR/VMR here, the "trusted" default renderes on every Windows system. They usually rely on the GPU to actually convert the YUV to RGB, and the quality of that process leaves alot to be desired. So with EVR/VMR, it can give you a quality boost if you actually use RGB. With a modern renderer like madVR, its usually not recommended to use RGB, unless you have a post-processing filter that requires it.

Note that converting interlaced YUV to RGB will stop the deinterlacing process from working!

Anyhow, i hope everything works fine, and i can focus on other things again. All these converters was a nice exercise in assembler/intrinsics, but at some point, you just have enough of those. :)

nevcairiel
4th September 2011, 20:56
The problem is that it doesn't seem to be playback speed related. For example, imagine a file with keyframes at frames 1000 and 1250. Before the seek I was in frame 500. If I seek to frame 1100, it seeks instantly to frame 1100 and audio plays from there. But the screen freezes with frame 500 until, at normal playback speed, frame 1250 is reached. Then video is resumed. This can perfectly be 5+ seconds of screen freeze while audio is playing in the back. With other splitters you can clearly see that previous frames are decoded very fast until you reach frame 1100 as you say, or that they seek instantly to it, with LAVS it seems that it just waits until the keyframe is reached, then resumes playback. Pure speculation right here, but that is what it looks like.

Yeah i've seen that symptom, not 100% sure why its happening, but i have some ideas how to check whats really going on.
I'll focus on that over the next weeks, its been too long on my list.

fastplayer
4th September 2011, 21:19
I'm not sure if this is 100% LAV-related but it brings MPC-HC down to its knees whereas its internal filters work fine.
Here are the steps to reproduce:
1. http://download.microsoft.com/download/e/a/d/eadb9b42-728b-42b0-bfdf-b472fa2a2464/Step_into_Liquid_1080.exe
2. Make sure "Rewind when done playing" is disabled in MPC-HC.
3. Start playback, seek to the near end of the video, wait until playback stops.
4. Now start playback by clicking on the video or pressing Space key.
5. Result: With MPC's internal filters/splitters, playback restarts as expected. Using LAVFilters, MPC-HC freezes 2 out of 3 times.

My setup: madVR 0.74 (windowed mode), LAV 0.33 (default settings), MPC-HC 3694.

Can anyone else reproduce this?

Edit: I narrowed it down to LAVVideo. If it's disabled, restarts are OK.
Just wanted to confirm that this issue is fixed in 0.34.
:thanks:

fairchild
4th September 2011, 22:25
Thanks for the update Nev! I have a quick question which I tried searching for in this thread but didn't find anything on it. Regarding the setting "Use High-Quality Format Conversions", under what scenarios would enabling this option which is disabled by default benefit me?

I'm guessing this setting is more for a scenario where I run solely LAV Video decoder > EVR. As I'm running ffdshow raw video filter to get YADIF deinterlacing + MadVR, then this setting wouldn't do anything for me correct?

Thanks again for an awesome set of filters! :)

STaRGaZeR
4th September 2011, 22:27
Yeah i've seen that symptom, not 100% sure why its happening, but i have some ideas how to check whats really going on.
I'll focus on that over the next weeks, its been too long on my list.

To make things worse, sometimes when it freezes it doesn't recover, a player restart is required. Hope you can nail it down.

BTW, congrats on the new converters, massive work right there. Everything seems to be working just fine, and the YUV->RGB one is even faster than ffdshow's!

pirlouy
5th September 2011, 00:20
@ pirlouy, this is what works over here:
1) dis-able "uncompressed" in the audio decoder
2) en-able "uncompressed" in the audio processor
3) with Graphstudio, or RadLight Filter Manager, set the merit of the audio processor to 0x00800000 or greater
4) reboot, or logoff and logon
5) enjoy :)
Thanks for the help.

Thanks to another computer, I've found the problem: when I double click on "ffdshow audio processor" in MPC external filters, the options window does NOT open...

I've tried to rename the registry for ffdshow, without success. I'll do tests soon in order to fix this...

nevcairiel
5th September 2011, 05:52
Thanks for the update Nev! I have a quick question which I tried searching for in this thread but didn't find anything on it. Regarding the setting "Use High-Quality Format Conversions", under what scenarios would enabling this option which is disabled by default benefit me?


That option really isn't all that useful anymore.
It controls swscale and its scalers, switching them into high-quality mode. But swscale is only used if no hand-optimized converter is found.

So it'll only be used for very rare combinations of formats, which i didn't optimize manually. All of the new converters always use the highest quality, because they are fast as it is. :)

In conclusion, i really cannot say when it'll be beneficial. I might even remove it again, and turn it on by default. It really only was for RGB conversion before, but i wrote my own now ..

Master_T
5th September 2011, 10:06
Both PotPlayer and MPC-HC had been giving me some annoying audio crackling with FFmpeg filters and HD videos on my laptop, I guess because it's not very powerful and it couldn't "keep up", but I switched to LAV filters today and both audio and video are smooth as silk! So, this post is just to thank you for your work, these filters are awesome, and so are the developers... keep it up!

Thunderbolt8
5th September 2011, 10:38
when selecting certain .mpls or .m2ts files in explorer (mostly not the main movie files/playlist, but others as it seems), theres sometimes a long time of wait and cpu load, before I can do anything else. why is that? (got LAV splitter, mediainfo, haali installed)

has it to do with the general readability of the playlist/file, in regards of which audio/video tracks it includes? or maybe with the number of .m2ts files a playlist includes?

blaster00
5th September 2011, 13:56
How to set audio to stereo in LAV audio decoder?
And a render problem with mpc-hc http://forum.doom9.org/showthread.php?p=1523830#post1523830

Superb
5th September 2011, 14:14
How to set audio to stereo in LAV audio decoder?LAV Audio has no mixing capabilities yet.
You can use the Windows mixer or ffdshow (in raw mode) to mix the channels.

And a render problem with mpc-hc http://forum.doom9.org/showthread.php?p=1523830#post1523830Looks like a MPC-HC subtitles rendering bug. Has nothing to do w/ LAV Filters.

CruNcher
5th September 2011, 16:07
@nev
you should keep an eye on this http://forum.doom9.org/showthread.php?p=1523826
it currently crashes a lot with *.ts files it gets via Lav Splitter unfortunately :( (funny is all of those crashy ones work with MPC-HC Internal Splitter though some of them have no audio in the end like the Portuguese Latm samples that also crash it, those with the wrong Audio track ids)

nevcairiel
5th September 2011, 16:08
Its based on ffdshow, i don't expect it to do anything BUT crash. :p

BloodySword
5th September 2011, 17:42
Its based on ffdshow, i don't expect it to do anything BUT crash. :p

He said, that when used with MPC-HC splitters it works.
But that must not be a mistake in you splitter.
Just like the thing with AAC. FFDShow expects init data.

Plutotype
5th September 2011, 18:26
Hi nev,
Have a question to the RGB converter output settings. In which typical scenarios you generally recommend to use 16-235 / 0-255 / untouched?
Thanks

nevcairiel
5th September 2011, 18:51
Hi nev,
Have a question to the RGB converter output settings. In which typical scenarios you generally recommend to use 16-235 / 0-255 / untouched?
Thanks

If you use EVR, you either want 16-235 or 0-255, depends on which level your screen expects. PCs are generally always 0-255, TVs are 16-235, but some TV models also take 0-255. If you don't know, get some black level calibration pattern and test the two modes. Changes should be immediate.

For madVR, you should not use RGB at all, just leave all YUV modes checked, and it should not matter.
If for some arcane reason you do want RGB with madVR, untouched is probably best.

CruNcher
5th September 2011, 18:55
@nev
sorry i was to optimistic there is a major drawback with ffdshow-quicksync it seems to be a direct native Intel API implementation like Nvcuvid not DXVA2 and the overhead is too huuuuuge for a small HD2000 and imho even questionable for general playback purposes @ all :D

http://forum.doom9.org/showthread.php?p=1523906#post1523906

ikarad
5th September 2011, 19:12
LAV Filters 0.34

LAV Splitter
- Improve playback of VC-1 in EVO
- Support for SSA subtitles in AVI
- Support for H264 in VFW mode in MKV

LAV Video
- New optimized pixel format converters (faster and more accurate)
- New YUV->RGB converter
- Support for PNG video


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.34.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.34.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.34-x64.zip)

Will you include a sub renderer in a next version?

SamuriHL
5th September 2011, 20:11
Will you include a sub renderer in a next version?

LOL. :) That seems unlikely. That's not a small piece of work.

ikarad
5th September 2011, 21:26
LOL. :) That seems unlikely. That's not a small piece of work.

Stephen said that lav filters will replace ffdshow
AssRender.dll is an Avisynth plugin. You can't register it or use it in DirectShow, or anything like that.

As for ffdshow needing a new subtitle renderer, there's nothing stopping you from using the MPC-HC one or DirectVobSub. ffdshow development has halted and it is already planned to be replaced by LAVFilters anyway, so there's no sense in petitioning for feature changes.
http://forum.doom9.org/showpost.php?p=1523723&postcount=13955

SamuriHL
5th September 2011, 21:28
Yea, I read that. I'm not sure I know what that means. LAV Filters have nothing at all to do with ffdshow. If someone wants to work on ffdshow, they can. LAV Filters is its own project.

nevcairiel
5th September 2011, 21:32
I said it before, and i'll say it again - its not the video decoders job to render subtitles. Its a video decoder, not a subtitle renderer.

Besides, you'll get horrible looking subs if you render them on a YUV 4:2:0 frame

mandarinka
5th September 2011, 21:42
Given that there is now a HQ RGB converter (and it accepts 10bit, no less), would it be feasible (as in, not too much work) to add a barebone grab function that would be using this converter?

What I have in mind is something that would dump bmp image of current frame to a predefined directory (or uncompressed png in case that writing a png-structure file is easier than writing a bmp). It would do that either on demand (as ffdshow does when one hits ctrl-alt-g) or for each decoded frame (like when you just enable the grab filter in ffdshow). FFdshow uses the frame's number as a filename for the grabbed image, which is rather useful idea imho.

Luckily, you can already get this to work with ffdshow if you load it after lavvideo with forced rgb output. With this functionality inside lavvideo, it would however allow you to grab images even when passing untouched yuv to madvr, for example. (FFdshow's grab also has some glitches with non-mod4 width video, which is a different thing.)

While it's probably true that (ideally) screenshot-taking should be a responsibility of individual video player programs, there is the same issue as with video renderers, only worse. Many players fail to respect colormatrix of video while converting the screenshot to rgb and what's worse, virtually every player uses lousy chroma upsampling, too. Players I tried use what looked like point-scaling with much worse quality than what a basic gpu's overlay renderer produces... FFdshow's grab was one of the few ways to get around those issues (as it could apply the HQ conversion to the capped images, even when ffdshow itself was outputting yuv).

Here ends a shameless feature suggestion, thanks for reading!

somy
6th September 2011, 13:27
Hi,

Since the YUC/RGB converters are much more optimized in the new version, I'd like to ask whether LAV video decoder is good enough to replace FFDShow?
Thanks!

Com DAC
6th September 2011, 19:34
Thank you for the answer and it makes perfect sense. With this answer I have tried taking the mkv and stripping out the stereo stream and just leaving the 5.1 stream but after doing that I get absolutely no audio with LAV. Could it be because it doesn't start till part way into the file?

On that note does anyone know of a good tool to splice out part of an mkv file without having to re-compress it?

Thank you

SeeMoreDigital
6th September 2011, 20:44
I have a newbie question.

Is it possible to configure the LAV filters to open up video files in VirtualDub?

Midzuki
6th September 2011, 20:52
Is it possible to configure the LAV filters to open up video files in VirtualDub?

Not possible (yet?).

mzso
6th September 2011, 20:57
I have a newbie question.

Is it possible to configure the LAV filters to open up video files in VirtualDub?

Ummm. How is that relevant to a splitter or decoder? Just associate the desired filetypes with virtualdub in windows.

SeeMoreDigital
6th September 2011, 21:28
Not possible (yet?).
I must admit I'm really impressed by the simplicity of the LAV Filter decoder suite.

I will look forward to them being made available for use with VirtualDub ;)

nevcairiel
6th September 2011, 21:34
I have no idea how VirtualDub works. If it can use DirectShow filters, it can surely already use them. But something tells me its limited to VfW, i don't see that happening anytime soon.

Superb
6th September 2011, 21:36
I have a newbie question.

Is it possible to configure the LAV filters to open up video files in VirtualDub?You might be able to use it via... hmm.. Avisynth script w/ DirectShowSource()...

pirlouy
6th September 2011, 22:39
Hi,

Since the YUC/RGB converters are much more optimized in the new version, I'd like to ask whether LAV video decoder is good enough to replace FFDShow?
Thanks!
Yes, for decoding part, it's better. And it's still developed...

Sven75
6th September 2011, 22:51
There is quite a number of free input plugins which allow to open files in VirtualDub without having to rely on vfw. Among others there is a DirectShow input plugin as well as an ffmpeg-based one. They can easliy be found in VD's forum.

On a side note: I strongly recommend having a look a the (programming related) blog posts on the VirtualDub website. These could even be of interest to Nev and Madshi, because (as far as I can tell) they are extremly profound and often very impressive - evidence of great programming knowledge.

roytam1
7th September 2011, 01:08
I have no idea how VirtualDub works. If it can use DirectShow filters, it can surely already use them. But something tells me its limited to VfW, i don't see that happening anytime soon.

Get a DirectShow VDF plugin:
http://forums.virtualdub.org/index.php?act=ST&f=7&t=15093

Midzuki
7th September 2011, 01:15
Proper VfW ( and ACM too, why not? :devil: ) support for LAV Video and LAV Audio would require a VfW/ACM "wrapper", so to speak. ffdshow has its ff_vfw.dll, so the LAV decoders, ideally, would use a lav-vfw.dll and a lav-acm.dll ;)

Superb
7th September 2011, 02:30
Heh, if anything, he should add a Media Foundation interface. Not VfW. :P

Inspector.Gadget
7th September 2011, 03:53
VfW ... [ideal]

Don't ever use these two words in the same sentence :p

ryrynz
7th September 2011, 07:57
Is Avisynth limited to using the ffdshow raw video filter when used in conjunction with with Lav Video?

somy
7th September 2011, 08:18
Yes, for decoding part, it's better. And it's still developed...

Thanks for the reply.
I noticed in the previous version VC1 decoding is disabled by default, do you know the reason behind it? Is VC1 decoding working fine in the new version 0.34?
:confused:

hoborg
7th September 2011, 08:24
Thanks for the reply.
I noticed in the previous version VC1 decoding is disabled by default, do you know the reason behind it? Is VC1 decoding working fine in the new version 0.34?
:confused:

Interlaced VC-1 is not supported at all.

somy
7th September 2011, 08:32
Hi Hoborg,

Thanks for the reply both here and at MePo :-)
I'm still confused, is it by purpose not to support VC-1 interlaced decoding or it is due to some de-interlacing limitations I'm not aware of?
To my knowledge, FFDShow supports interlaced material. It can send "interlaced" flag to HW for hardware de-interlacing......

hoborg
7th September 2011, 08:38
Hi Hoborg,

Thanks for the reply both here and at MePo :-)
I'm still confused, is it by purpose not to support VC-1 interlaced decoding or it is due to some de-interlacing limitations I'm not aware of?
To my knowledge, FFDShow supports interlaced material. It can send "interlaced" flag to HW for hardware de-interlacing......

That is limitation of FFMpeg. All decoders/players based on FFMpeg will fail to play interlaced VC-1 (like VLC).
FFDshow can use MS decoder to decode interlaced VC-1.

Midzuki
7th September 2011, 08:44
Heh, if anything, he should add a Media Foundation interface. Not VfW. :P

Don't ever use these two words in the same sentence :p

The problem is, except for Windows Media Player/Center and a couple of Microsoft fanboys, "nobody" cares about writing DMO decoders, nor about developing Media Foundation codecs.

nevcairiel
7th September 2011, 08:46
I care more about Media Foundation then about VfW. I will probably never implement a VfW or ACM interface, i just have absolutely zero need for it.

somy
7th September 2011, 08:51
That is limitation of FFMpeg. All decoders/players based on FFMpeg will fail to play interlaced VC-1 (like VLC).
FFDshow can use MS decoder to decode interlaced VC-1.

OK, thanks! Does MePo use MS decoder comes with Windows for VC-1 videos? I just checked the codec conf panel, and there is no place to specify VC-1 decoder in MePo......

nevcairiel
7th September 2011, 09:00
I would have done so if GraphStudio doesn't crash when I tried to do benchmarking 10-bit clips with LAV Video. timecodec also cannot be used because of the same problem.

It happened with all 10-bit clips I have, whether the ones I made myself or the ones 'made by others'.

I think i figured out why its crashing. I'll see about fixing this.

Edit: And its fixed.

SeeMoreDigital
7th September 2011, 09:08
Thanks for the feedback guys... I will try the latest version of phaeron's "DShowInputDriver.vdplugin" and report back!

I like the sound of Midzuki's "lav-vfw.dll and lav-acm.dll" suggestion :)


EDIT: Playback of AVClossless appears to be working well. Nice one.

ranpha
7th September 2011, 09:40
I think i figured out why its crashing. I'll see about fixing this.

Edit: And its fixed.
The changes isn't in the git repo yet, it seems.

nevcairiel
7th September 2011, 09:42
The changes isn't in the git repo yet, it seems.

No, i'm at work and cannot push to the repo from here (reading works, go figure, stupid proxy).

This is the patch, if you want:
http://pastebin.com/yaiz68vs

ranpha
7th September 2011, 10:27
Comparison:-

Clip 1. (http://www.filesonic.com/file/1516565581/hotd-op-1080p-hi10p.mkv)

5-run benchmark in GraphStudio. First run result was removed, the average of the last 4 runs are listed below.

LAV Video - 96.6850fps
CoreAVC 3 - 85.9580fps

Clip 2. (http://www.filesonic.com/file/1899543981/potc_worldsend_blooper_reel.mkv)

LAV Video - 110.0368fps
CoreAVC 3 - 102.1178fps

Clip 3. (http://www.mediafire.com/?ifm12qy91pfyh68)

LAV Video - 112.8812fps
CoreAVC 3 - 102.2661fps

AMD Athlon II X4 640 - 8GB RAM.

nevcairiel
7th September 2011, 10:28
This is with native P010 output on both?

If so, sweet, i'm faster. :p

ranpha
7th September 2011, 10:31
This is with native P010 output on both?

If so, sweet, i'm faster. :p

I have P010 outputs enabled in both decoders. Not sure though if the decoders output it.

nevcairiel
7th September 2011, 10:32
If its enabled, LAV Video at least will, because its the best format for the video.
I haven't seen CoreAVC 3, but if its anything like 2.x, you need to move the P010 format on the top of the list.

ranpha
7th September 2011, 10:41
Just checked it, CoreAVC did output P010 in the pin to the 'Time Measure Filter'. Same for LAV Video.

nevcairiel
7th September 2011, 10:41
Great, thanks!

ranpha
7th September 2011, 10:53
I have one bad news for you though. When it comes to playing certain 8-bit H.264 videos, CoreAVC 3 software mode is way faster than LAV Video. With this clip (http://www.filesonic.com/file/1554044764/Decay_Clannad_After_Story_NCOP_Toki_wo_Kizamu_Uta_1080p_H264_DTS-HD_MA_FLAC.mkv), CoreAVC is nearly 30fps faster than LAV Video. I think this really hold true for DXVA-compliant files.

CruNcher
7th September 2011, 10:54
This is with native P010 output on both?

If so, sweet, i'm faster. :p

I would be carefull with those measurements @ least CoreAVC 2.6 had a big problem with Lav Splitter in terms of reaching Maximum Performance something seems wrong in how they interact with each other on full Performance with certain *.mkv (it seems to throttle itself multithreading wise to just ~60% of its actual performance capabilities). Not sure if that is still the case for 3.0 also.

nevcairiel
7th September 2011, 10:56
I would be carefull with those measurements @ least CoreAVC 2.6 had a big problem with Lav Splitter in terms of reaching Maximum Performance something seems wrong in how they interact with each other on full Performance with certain *.mkv it seems. Not sure if that is still the case for 3.0 also.

Thats their problem, not mine. :)
Especially with MKV thats unlikely, though. H264 in MKV is output untouched, there is not one single line of code that processes the bitstream in the splitter.

I have one bad news for you though. When it comes to playing certain 8-bit H.264 videos, CoreAVC 3 software mode is way faster than LAV Video. With this clip (http://www.filesonic.com/file/1554044764/Decay_Clannad_After_Story_NCOP_Toki_wo_Kizamu_Uta_1080p_H264_DTS-HD_MA_FLAC.mkv), CoreAVC is nearly 30fps faster than LAV Video. I think this really hold true for DXVA-compliant files.

For 8-bit, there isn't really much i can influence. The ffmpeg decoders output is basically straight copied onto the YV12 output sample, nothing fancy required. So the speed is defined by ffmpeg.
P010 output is a bit different, and a properly optimized algorithm to interleave the bytes can improve performance.

Besides, a high bitrate 1080p 8-bit movie decodes at around ~250 fps for me, what difference do 30 more or less make. :D
Even a pretty old dual core can probably decode 1080p Blu-ray material these days. 10bit requires quite some extra processing, and there is a level of PCs thats still present in alot of peoples homes where this difference might be vital.

Portioli
7th September 2011, 11:11
i am sorry if this is a newbie question,
but where we can find files 4:2:0 more than 8bit?
all my bd`s are 4:2:0 8bit

CruNcher
7th September 2011, 11:15
Ok that would mean my measurements where right i doubt that not 100 fps more bad no way ;) (knowing lav splitter had performance and lock issues in the past) though i need to get MPC-HC matroska and and Halli splitter to confirm though it would mean if those measurements are true that they where really bad (2.6) compared to Lav Video and DiAVC on the 4 Girls sample i somehow highly doubt that but i try to confirm.

nevcairiel
7th September 2011, 11:18
I have CoreAVC 2.6, and i can run those tests myself (but i'm not really interested in buying 3.0). Not sure what the speed difference between 2.6.1 and 3.0 would be on 8-bit decoding.

Portioli
7th September 2011, 11:18
could you post me a sample of Y416,plz?

nevcairiel
7th September 2011, 11:20
i am sorry if this is a newbie question,
but where we can find files 4:2:0 more than 8bit?
all my bd`s are 4:2:0 8bit

Blu-rays are only allowed to be 4:2:0 8-bit. The only 10-bit material you can find are some sample files on the web, and some encodes by people trying out the new toys. Its really not "mainstream" yet.

You'll find some H264 9bit and 10bit samples, but anything higher is not existant.

Sven75
7th September 2011, 11:21
While doing my regular PowerPoint checkup with the new release, I came across an issue (not PPT related this time), which is rather general problem:

I have an MPEG2 clip, which has a supposed length of 26 minutes (in the header, I assume), but the actual real length that can be played back is only 19 seconds. So, most probably, around 25 minutes of data somehow got lost - as it surely often happens when, e. g. downloads are suddenly interrupted.

Now, LAVSplitter still assumes 26 minutes of file length and therefore any player's timeline will allow for 26 minutes of seeking, which - naturally - fails. Wouldn't it be possible (and better) to determine the actual number of frames available - or is there any good reason to handle it the way it is?

For comparison only, the Elecard splitter only shows a length of 19 seconds - which on first thought seems preferrable to me.

Portioli
7th September 2011, 11:26
Thank you nev!
Continue the great job.
One more question, I read it before a couple of pages.
Are you really going to include yadif in lav video?

Sven75
7th September 2011, 11:41
Just found another issue with SVQ3 movs - this time only happening with the PowerPoint 2010 render path.

When using LAV Video Decoder with YV12 there seem to be like chroma shifts. If I put ffdShow for raw handling behind LAV it gets even worse and the image becomes totally distorted.

If I only use ffdShow for SVQ3 with YV12 colorspace or if I only use LAV VD and deactivate YV12 everything is perfectly fine.

I tested to different files and I can upload a sample (or if you still have my samples around somewhere, it's among those) or just upload a screenshot.

CruNcher
7th September 2011, 11:49
@nev
you right i confirmed with all 3 splitter the results wow hard to believe that even Arcsoft beat(s) them @ least in full Performance (Software) but Playback utilization looks different

nevcairiel
7th September 2011, 12:11
Now, LAVSplitter still assumes 26 minutes of file length and therefore any player's timeline will allow for 26 minutes of seeking, which - naturally - fails. Wouldn't it be possible (and better) to determine the actual number of frames available - or is there any good reason to handle it the way it is?

As far as i am aware, MPEG containers (both PS and TS) don't have a duration in the header.
To determine the duration, the code will check the first timestamp in the file, and the last, and calculate the duration from that.

This is not always reliable, and as a fallback, it'll use the files size to determine a duration based on bitrate. Does the file actually have the full size, and just has alot of zeros at the end, or is it totally cut off at the end?

When using LAV Video Decoder with YV12 there seem to be like chroma shifts. If I put ffdShow for raw handling behind LAV it gets even worse and the image becomes totally distorted.

I should still have your sample, however if the decoders output is YUV 4:2:0, then thats send untouched to the renderer, there really isn't much that can go wrong (short of some stride misunderstandings, but that wouldn't be limited to SVQ3). I can test later.

A screenshot would be good.


Are you really going to include yadif in lav video?

I will, but there is no timeframe for that yet.

Sven75
7th September 2011, 13:03
File size of the MPEG2 (Program Stream, btw) is around 15 MB containing 493 frames (25 fps), while bitrate is around 6000 kbps. So there really is not much space for zeros and I did not find anything unusual while looking into the file... I will just upload it, so you can have a look at it later.

Edit: Just noticed that it is not showing 26 minutes, but 26 hours 30 minutes - so there is surely something wrong when determining the duration and the reason cannot be that the file is simply incomplete.

MPEG2 file:
5_MPEG2.mpg (http://www.mediafire.com/?spf08sp9c2siin1)

SVQ3 Screenshots:
LAV only YV12 enabled.png (http://www.mediafire.com/imageview.php?quickkey=be4yb280pxcw8kv)
LAV YV12 enabled +ffdShow YV12 enabled.png (http://www.mediafire.com/imageview.php?quickkey=6ha42l87vhtvbnd)
LAV only YV12 disabled - working.png (http://www.mediafire.com/imageview.php?quickkey=aia7pgetdcxq5q7)

Sven75
7th September 2011, 13:53
One more:

Playback of videos in PowerPoint 2003 is not working at all with LAV Video Decoder, if LAV VD is last in the playback chain. PowerPoint will simply freeze and not recover. If ffdShow is inserted to take care of raw video, everything is working pretty good. Also, other DirectShow filters are usually working just fine.

Here PowerPoint 2003 is configured to use mciqtz32.dll as a wrapper to DirectShow.

I understand if you don't care about mci, but maybe there really is something wrong which should better be corrected.

I uploaded a stack trace (http://www.mediafire.com/?sx71wj9w1p1mppu) of the frozen App which (at least sometimes) shows LAVSplitter.ax!OpenConfiguration+0x86e7 being called. Seems odd to me and maybe you can deduce something from it.

nevcairiel
7th September 2011, 14:03
I uploaded a stack trace (http://www.mediafire.com/?sx71wj9w1p1mppu) of the frozen App which (at least sometimes) shows LAVSplitter.ax!OpenConfiguration+0x86e7 being called. Seems odd to me and maybe you can deduce something from it.

Why the hell would it call OpenConfiguration, thats the function to show the config UI. How would it even know about that method?

Sven75
7th September 2011, 14:07
That is exactly what I thought ;-)

I don't know, but see the stack trace from Process Explorer...

The stack will not remain static though. There is still a lot going on, but every now and then it looks like this.

CruNcher
7th September 2011, 15:11
@nev
Could you confirm this crash with Lav Splitter 0.33/34 and DiAVC 64 1.2 Free http://forum.doom9.org/showthread.php?p=1524464#post1524464 it would make me sleep much better ;)


Also here is :)

http://img27.imageshack.us/img27/3149/diavcworldsfastest.png

The Worlds fastest (Intel Multithreaded) H.264 8 Bit (Windows 64 bit) Software Decoder (batteries not included ;) )

Power Consumption (Full Performance Decoding):

CoreAVC 3.0 64 = ~42W
Lav Video 0.34 64 = ~48W
DiAVC 1.2 64 = ~50W

Power Consumption (Playback 60 FPS):

CoreAVC 3.0 64 = ~15
Lav Video 0.34 64 = ~14W
DiAVC 1.2 64 = ~12W

JarrettH
7th September 2011, 16:25
I'm going to ask a really dumb question that I bet a lot of people are wondering!!!

Why does a decoder performance of 100, 200, or 300 FPS matter when you're only decoding video at 24, 25, or 30 FPS?

:p:thanks:

nevcairiel
7th September 2011, 16:26
I'm going to ask a really dumb question that I bet a lot of people are wondering!!!

Why does a decoder performance of 100, 200, or 300 FPS matter when you're only decoding video at 24, or 25, 30 FPS?

:p:thanks:

The faster it is, the less cpu power it uses when its running at its normal FPS.

nevcairiel
7th September 2011, 16:38
SVQ3 Screenshots:
LAV only YV12 enabled.png (http://www.mediafire.com/imageview.php?quickkey=be4yb280pxcw8kv)
LAV YV12 enabled +ffdShow YV12 enabled.png (http://www.mediafire.com/imageview.php?quickkey=6ha42l87vhtvbnd)
LAV only YV12 disabled - working.png (http://www.mediafire.com/imageview.php?quickkey=aia7pgetdcxq5q7)

I tried in Power Point 2007 (the version i have installed), and it plays fine.

I need some way to reproduce it without power point 2010, otherwise its unlikely i'll find a solution.

Sven75
7th September 2011, 16:45
Rendering is completely different in 2010 compared to 2003 and 2007. Also, without some changes, 2003 and 2007 will only use vfw codecs via mci and won't use the directshow wrapper for mci.

You could use the free PowerPoint Viewer 2010... It should show the same symptoms as the real 2010.

I could then just upload a presentation which already has a link to the file... Maybe you could then have a look at issue 40, too.

If you are interested, I can also provide you with a full Office/PowerPoint 2010 version. As a thank you for your great work ;-)

nevcairiel
7th September 2011, 16:46
I can probably create a file in 2007 and try to play it in the 2010 viewer...?

Edit: wtf, installing the 2010 viewer broke playback in my 2007.

Sven75
7th September 2011, 16:58
Nope, you cannot just do this, because if you want to use the new native 2010 video playback capabilities, you need to re-insert it in 2010 or upgrade it.

Btw, 2007 will also use wmp.dll to playback files... Therefore I usually de-reg wmp.dll, because it's trouble only.

nevcairiel
7th September 2011, 17:00
Nope, you cannot just do this, because if you want to use the new native 2010 video playback capabilities, you need to re-insert it in 2010 or upgrade it.

After installing the 2010 viewer, nothing works in my PowerPoint 2007 anymore, stupid system. It now completely refuses with soem MCI error.
I guess i need the file with the movie inserted already.


Btw, 2007 will also use wmp.dll to playback files... Therefore I usually de-reg wmp.dll, because it's trouble only.

But that one actually played. :D

Sven75
7th September 2011, 17:04
Welcome to my world - I love video in PowerPoint :-)

Anyway, 2010 is much better than the previous versions.

Those 2 reg files should restore/improve your video playback in 2003/2007:

MCI32 x64 (http://www.mediafire.com/?cpaxp51cx61sqsp)
MCI-Extensions x64 (http://www.mediafire.com/?kvkwmf6hhty0oay)

After this, MCI will use DirectShow for the extensions in the reg file

Sven75
7th September 2011, 17:20
Here you will find a test presentation file with two linked videos: Test.7z (http://www.mediafire.com/?h6fallm2dl68hc8)

The first one for the distorted image and the second one for the MPEG2 PS which won't work with LAVSplitter (issue 40)

Of, course I have some more issues, which I just discovered today, but I don't want to overstretch things ;-)

goldie
7th September 2011, 17:24
@nevcairiel:
I need you help to increase the window high of the config dialog,
or I cannot see the lowest position options.
It was maybe caused by non-English windows environment.
Thanks for your hard work :)

LAV Splitter
http://i.imgur.com/I4gmFs.png (http://imgur.com/I4gmF)

LAV Video Decoder
http://i.imgur.com/bYFZus.png (http://imgur.com/bYFZu)

LAV Audio Decoder
http://i.imgur.com/s1s0Ls.png (http://imgur.com/s1s0L)

Midzuki
7th September 2011, 18:25
^

Really, the tiny config windows used by both ffdshow and the LAV filters are "outdated stuff" :D The latest AC3Filter configurator for example, uses an 826x543 window :cool: :rolleyes: :p

nevcairiel
7th September 2011, 18:26
Why would i need a big window when there is only so few options?

Midzuki
7th September 2011, 18:30
Why would i need a big window when there is only so few options?
^
^
^
goldie has just shown a (possible) good-reason.

CruNcher
7th September 2011, 18:49
http://forum.doom9.org/showthread.php?p=1524505#post1524505 <- Fixed Results for CoreAVC 3.0

something which doesn't look so good for Lav Video

http://img24.imageshack.us/img24/2196/mbaffpaff.png

Another time what seems to be a Performance hold

http://img695.imageshack.us/img695/1834/astrai.png

and another one looks like a Performance hold again

http://img847.imageshack.us/img847/4155/bondj.png
Splitter here is MPC-HC Gabest MpegSplitter.ax

with this one even DiAVC takes a hit

http://img11.imageshack.us/img11/8761/evanl.png

and here is another odd *.ts behavior (either this has something todo with the splitter interaction and lav video or performance of the actual decoding)

http://img851.imageshack.us/img851/6249/sampleo.png

http://img585.imageshack.us/img585/1541/anixe.png

Houston we have a problem (the good that we aren't on XP and backed by the GPU)

http://img716.imageshack.us/img716/3846/ehhlostresponse.png

nevcairiel
7th September 2011, 22:22
LAV Filters 0.35

LAV Splitter
- Fixed a crash in IAMStreamSelect::Info handling with certain applications
- Improve duration calculation for MPEG files

LAV Audio
- Fix playback of DTS streams which change the channel count mid-playback

LAV Video
- Fixed a crash with 10-bit decoding and benchmarking tools
- Fixed a H264 NALU parsing issue with certain streams


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.35.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.35.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.35-x64.zip)

As you can see, mostly small fixes. Additionally, i updated ffmpeg, so some new stuff might have sneaked in.

Sven75
7th September 2011, 22:29
Thanks a lot - I will check the new version asap.

Did you already find out something regarding the PowerPoint issues? Are any of the small fixes related to it?

nevcairiel
7th September 2011, 22:30
Did you already find out something regarding the PowerPoint issues? Are any of the small fixes related to it?

The first actually, i had powerpoint 2007 constantly crash on me, not working at all, now at least i get sound with no picture. :P

Sven75
7th September 2011, 22:40
Could be related to the freezing I was experiencing with 2003.

Did you try the reg files I posted for MCI? With those (and de-regging wmp.dll) 2007 should be working just fine.

PowerPoint is so picky, if a splitter/decoder is working in 2003/2007/2010 it should be ok with any other windows app ;-)

cyberbeing
7th September 2011, 23:48
nevcairiel, I added some LAV Video 0.35 results to my post in the CoreAVC thread:
http://forum.doom9.org/showpost.php?p=1524563&postcount=6691

Until CoreCodec pushes out a CoreAVC 3.0.x build with some perf fixes which will hopefully close the gap, it seems you have a nice lead over CoreAVC 3.0.0 and FFDShow on my old AMD X2 4800+ from 2005. Nice work on the last few versions of LAV Video.

goldie
8th September 2011, 02:08
Why would i need a big window when there is only so few options?
:confused: It seem that I can't see the (last one?) option in LAV Video decoder (http://imgur.com/bYFZu) dialog. :thanks:

SEt
8th September 2011, 02:18
Version 0.35 doesn't crash in GraphStudio benchmark with 10 bit content, but produce meaningful picture only with Haali renderer - the rest are black screen or something with very wrong pich.

Fadeout
8th September 2011, 02:58
I'm currently using:
- MPC-HC x86
- MadVR
- Haali splitter
- Lav Video 0.35

For the first time this combination works on EVERYTHING (well, not everything, as the recent Haali broke MP4)

Still can't use Lav Splitters as they don't load external chapters, but surprisingly the Lav Video decodes perfectly when they are loaded through Haali.

The only downside may be that this won't use DXVA when it's available.

nevcairiel
8th September 2011, 06:01
nevcairiel, I added some LAV Video 0.35 results to my post in the CoreAVC thread:
http://forum.doom9.org/showpost.php?p=1524563&postcount=6691

Until CoreCodec pushes out a CoreAVC 3.0.x build with some perf fixes which will hopefully close the gap, it seems you have a nice lead over CoreAVC 3.0.0 and FFDShow on my old AMD X2 4800+ from 2005. Nice work on the last few versions of LAV Video.

Thanks.
The overhead for P010 can possibly be explained by the memory layout it uses. Dithering to YV12 in SSE2 is really trivial, it consists of one add and one shift operation, something a CPU is really fast with.

P010 output requires interleaving of the U and V bytes, maybe the SSE2 operation for interleaving is slower then the whole dithering process?

On my system, the speed is basically the same, but then my system is so fast that the conversion overhead doesn't really show.
I think i can still improve the P010 path a bit, though.

Are the 10-bit samples you used publicly available somewhere, btw?

cyberbeing
8th September 2011, 09:24
The SSE2 performance of Athlon 64 based processors like my X2 is occasionally slower than the same thing coded in MMX, so that may have something to do with it. That's why both x264 and recently libav have a special code path for A64 which selectively avoids SSE2 code which is tested to be slower. Don't know if that's the case here, but it seems possible that the SSE2 interleaving function used for P010, just happens to be one of the few which runs horribly on A64. Though your P010 overhead is half that of CoreAVC, so you already must be doing something right.

It's too bad you can't just create a special FourCC for x264's native 420p10 format and get madshi to support it. I assume that must be what madVR does internally with its own ffmpeg/libav decoder. As much as it's nice to stick with standardized FourCC's created by Microsoft, an overhead makes it kind of pointless when we don't have any hardware or DXVA we need to support for the time being.

As for the 10-bit videos I used, they were really nothing special.

nevcairiel
8th September 2011, 09:32
It's too bad you can't just create a special FourCC for x264's native 420p10 format and get madshi to support it. I assume that must be what madVR does internally with its own decoder. As much as it's nice to stick with standardized FourCC's created by Microsoft, an overhead makes it kind of pointless.


While its true that native 420p10 would be better, the overhead isn't really that big. Its actually less instructions for the interleaving then it is for dithering, yet dithering is faster.
I can try to implement that one function using MMX, its a trivial function and it would be relatively painless to implement it.

The CPU feature probing function i use actually has a check for "SSE2 is slow", and should trigger on your generation of Athlon.

The only downside is that MMX is not available in 64-bit builds (MS Compiler limitation).

I'll probably get around to it in a bunch of hours, i'll throw a build in your direction, maybe it will actually be faster.

oddball
8th September 2011, 14:40
Why is it so difficult for LAV spliiter to handle subtitles correctly? Haali does. MPC-HC does. LAV doesn't.

For English spoken movies I only want forced subs shown.

For non-English movies I only want English subs shown (or 'undetermined' subs when they have not been set to 'eng' in mkvmerge).

LAV refuses to do both correctly no matter what options are set.

If i set only show forced subs it only shows forced subs. I should not need to set that as an option it should be automatic. In MPC-HC i have both audio and subs set to jap, eng. This works 100% correctly. In LAV I get full subs all of the time, if I leave the field where you state the language it ignores everything and defaults to the first sub track found in the MKV (could be German or whatever) or if I set to forced subs that is all I get so any foreign language movies I get NO subs whatsoever!

Also a lot of foreign movies I watch have the language set to 'undetermined'.

Please someone tell me how to get this working correctly!

nevcairiel
8th September 2011, 14:46
Thanks a lot - I will check the new version asap.

Did you already find out something regarding the PowerPoint issues? Are any of the small fixes related to it?

So i tried playing with PowerPoint again today.

Powerpoint 2007 now plays most stuff just fine, using the MCI interface. I disabled the WMP one.
Even in correct colors and everything. The only "issue" i currently have is that the image it shows after inserting the video is all distorted on some files (but not others), but when you start playback its fine. (I think it may have cached that image somewhere from before i fixed it...)

The Powerpoint 2010 Viewer however does not even try to open a DirectShow graph when i give it the file you gave me. So no idea how to test it.

nevcairiel
8th September 2011, 15:11
If i set only show forced subs it only shows forced subs. I should not need to set that as an option it should be automatic. In MPC-HC i have both audio and subs set to jap, eng. This works 100% correctly. In LAV I get full subs all of the time, if I leave the field where you state the language it ignores everything and defaults to the first sub track found in the MKV (could be German or whatever) or if I set to forced subs that is all I get so any foreign language movies I get NO subs whatsoever!

The options work 100% as advertised.
It just doesn't do anything beyond those options.


Also a lot of foreign movies I watch have the language set to 'undetermined'.

And what do you expect to happen for these? :)
Can't help it if your files do not have language tags.

Anyhow, it is planned to provide new subtitle selection logic with more "smart" selection capabilities.

For a small preview, check this post from a while back:
http://forum.doom9.org/showthread.php?p=1519452#post1519452

In addition to the above "advanced" logic, the "simple" logic will also behave much smarter, once its done.
I will probably work on that some time soon, actually.

I'll draft up the syntax specification in the next days, so people can comment on it before i start implementing it.

PS:
There is no "correctly", everyone prefers different subtitle logic.
Me? I want english or german forced subs, never anything else. That works pretty correctly for me. :P

The new logic should hopefully be able to accommodate everyone.

PPS:
I kinda doubt that MPC-HCs MKV splitter does anything "right" or "wrong", it creates one output pin for every subtitle, it doesn't have any logic whatsoever.

oddball
8th September 2011, 15:27
If the default audio is English then by default it is logical that the default subtitle track should also be English but ALWAYS be off and only forced English subs should be shown. If you are hard of hearing or speak another language then it should be down to you to select otherwise.

If the default audio is Non-English or undetermined then the subtitles should also default to the same language as the audio track and should also be 'off' unless forced and those forced subs should also in the same language as the audio.

There should then be the option to set a 'preferred' subtitle language that overrides the above so that if you want subs ALWAYS in English but only shown when the audio track is Non-English you put it in that field (Eng,Jap and 'Und' for no track flag set). Same goes with audio track preference.

This makes perfect sense to me and I do not know why it's so difficult to get to grips with.

DVD and bluray players have handled it this way for years and it's never been an issue.

CruNcher
8th September 2011, 15:58
I wonder why this is so complex to begin with subtitles are an option and as such should never be displayed by default :P
if a meta tag says "undefined" then it should switch to the language that lav splitter allows you to set, but still shouldn't enable it to be displayed :)
Then if you turn subtitles on in the player you get either the forced language shown or the meta tags one (your own forcefully defined though should always overwrite the meta tag (author) decision and os language (application) in any case, if you didn't set anything the meta tag "author defined is used" if that isn't set either then your system os language should be chosen as the preferred one (or the applications set language which mostly is defined by the os anyways)) but the player itself should never enable subs in the first place to be displayed (unless also you as user want it to). Very simple logic :)

So 3 options OS(Application), Forced (Your decision(list)), Meta tag (author) supplied) and whichever is selected the Player never ever should show them by default (unless user forces it explicitly) :)

glorp
8th September 2011, 16:07
And what do you expect to happen for these? :)
Can't help it if your files do not have language tags.


It's not that it doesn't have one, it just tagged 'und'. That's a real choice with mkvmerge and I've used it myself for some special situations. No tag at all is a different case, which of course I know you know.

Just saying, it would be nice if the reg ex string option were able to handle tracks marked 'und' if possible.

Here's hoping. Thanks for all your hard work. Looking forward to the new options :)

nevcairiel
8th September 2011, 16:14
It's not that it doesn't have one, it just tagged 'und'. That's a real choice with mkvmerge and I've used it myself for some special situations. No tag at all is a different case, which of course I know you know.

Just saying, it would be nice if the reg ex string option were able to handle tracks marked 'und' if possible.

Here's hoping. Thanks for all your hard work. Looking forward to the new options :)

Yeah i know that "no tag" means english in MKV. I don't do anything special to the tags, if it contains "und", then the new subtitle thingy will allow you to configure a rule for it.

glorp
8th September 2011, 16:16
Couldn't get any better. Thanks nev.

Sven75
8th September 2011, 16:36
...

The Powerpoint 2010 Viewer however does not even try to open a DirectShow graph when i give it the file you gave me. So no idea how to test it.

Thanks for trying - I am very grateful that you are looking into all this.

Unfortunately, I am very busy at work (setting up and testing PCs with your newest filters and some other stuff), but I will come back to you later and provide you with some more info.

nevcairiel
8th September 2011, 16:41
So i started to think how to design the default simple configuration mode.

There is two options for a default mode

1)
You only show forced subtitles, and never anything else.
That can be achieved right now, and is all i need, because i never watch content where i don't understand the audio. :)

2)
You show forced subtitles when audio matches your preference, and full subtitles otherwise.
Apparently this is what oddball wants.

------------------------------------------------------------
I can tell you how the "default" in a future version might work:

Assuming, i configured the audio as "eng ger", because that are the two languages i understand, with the preference of English audio, because i like the original rather then the dub.

Without any further configuration, this would happen:

- Assuming the file has english or german audio
--- If there are forced subtitles in english or german, they would be shown.
--- No other subtitles would be shown.

- If the file has no english or german audio
--- Show full subtitles in english/german (or the track marked default)

Now, the second part is questionable. Not everyone wants that, so it'll get an option.
Actually, there will be two options (i suck at wording options, but you'll get the idea)

- "Show subtitles when audio does not match preference" (default on/off? undecided)
- "Always show full subtitles" (default off)

I consider this a pretty sane default configuration. The options will need some better names (ideas welcome), and i have to decide if i want option1 active by default or not. And i should probably decide if i want an option to completely turn off subtitles.

One question remains for me:
How the hell do i deal with "default" flags on subtitles? What are they supposed to mean?

The MKV spec says this:
"Set if that track (audio, video or subs) SHOULD be used if no language found matches the user preference."

To me that means that there is one case where default would be used. Going back to my example from above - If the file has no eng/ger audio, and no eng/ger subtitle, then i'll use the default subtitle.
In addition, if "Always show full subtitles" is ON, it would also fall back to the default if no matching language was found, of course.

Am i missing something?

This all just refers to the "simple" config, which needs some good default behavior.
The "advanced" config will be able to completely control this.

Anyhow, if you have constructive ideas regarding subtitles, everyone is welcome to contribute, now is the time.
Note, though, that posts which are not constructive, seem like trolling, or anything of that sort, will just be ignored. :rolleyes:

sneaker_ger
8th September 2011, 17:00
Maybe you can split it up into two configurations. One simple, where you enter the languages you understand in the order of priority, i.e. for you "eng ger" and then it chooses "eng(audio),eng forced(sub);eng(audio),off(sub);ger(audio),ger forced(sub);ger(audio),off(sub)" (hope this pseudo code is readable). Maybe forced should not only account for "forced" flag, but also the string "forced" in the subtitle description?

Then a second advanced feature like the one used in Haali or rather more advanced like you proposed some pages back (http://forum.doom9.org/showthread.php?p=1519452#post1519452).

Most users will choose the simple logic, just stating that they only speak english and/or another language and the few others that need more individualization can choose the advanced logic. I guess everyone should be happy then?

oddball
8th September 2011, 17:01
I still think my version is the most sensible. If no flag is set then default should be whatever subtitle your preferred language is and only come on if toggled in the player. Tie the default to the OS language if you need to (German OS user gets German subs as default just like when they setup their DVD player for the first time).

"2)
You show forced subtitles when audio matches your preference, and full subtitles otherwise.
Apparently this is what oddball wants."

The subtitle language should always match the audio language and only be shown in full if you set it to be that way. in your options you have a option called 'always show forced subtitles' which to me is backwards. it should be 'never show forced subtitles'. That way if you do not want to show any subtitles at all you can have that. But forced subtitles should otherwise always be shown and in the same language as the audio unless it is either undetermined (defaults to your preferred language or tied to OS) or set as a preference yourself. Full subtitles should never be shown unless you choose to (always show full subtitles) or using the eng,jap system.

nevcairiel
8th September 2011, 17:02
Most users will choose the simple logic, just stating that they only speak english and/or another language and the few others that need more individualization can choose the advanced logic. I guess everyone should be happy then?

It is definitely planned to offer both a simple and a more advanced configuration.


I still think my version is the most sensible. If no flag is set then default should be whatever subtitle your preferred language is and only come on if toggled in the player. Tie the default to the OS language if you need to (German OS user gets German subs as default just like when they setup their DVD player for the first time).
Most people keep the subtitles always on in the player, and expect the splitter to actually turn them on or off for them (and complain otherwise). There wouldn't even be a need for the "No subtitles" option if the players would actually deal with this...
I'm quite sure that you'll be able to get it to work like you want with the new logic as well.

fairchild
8th September 2011, 17:07
I think the way it's working now is fine for my needs. I have both audio and subtitles set to: eng,spa,esp

Then I have it set to Only Forced Subs and Only with matching language. If I want to choose a different sub, for instance if I want to actually see full subs, I can just select it from the subtitle menu. This is as close to how it works on a set-top blu-ray player. If you want to see full subs you select it on the player, etc.

glorp
8th September 2011, 17:11
It is definitely planned to offer both a simple and a more advanced configuration.


I was thinking along these lines that you could avoid having multiple ways to configure options by providing one dropdown combo and seed it with all your defined 'simple' options. When one is selected it would build the reg ex of the advanced option that fit that selection (you might still need pref audio/sub lang boxes for input). Then one of the dropdown options would be, 'User Defined' allowing the user to input directly to a reg ex field.

It took me some time to realize that these similar simple vs. advanced options on Haali were mutually exclusive and this would also have the benfit of 'educating' users to at least the basics of how the reg ex option could be used. It also makes it easy for you to add or tweak additional 'simple' configurations in the future.

nevcairiel
8th September 2011, 17:15
It took me some time to realize that these similar simple vs. advanced options on Haali were mutually exclusive and this would also have the benfit of 'educating' users to at least the basics of how the reg ex option could be used.

My current idea would be to offer a checkbox for the advanced mode, which then hides the "simple" mode config, and shows the advanced mode. That way there wouldn't be any confusion - i hope.

The first time advanced mode is activated, i would seed it with the generated commands from simple mode. (In the logic, simple mode would always be converted to an advanced string, so i don't have to implement two algorithms to select streams)

STaRGaZeR
8th September 2011, 17:19
As I said back in the day, the only feature I miss in the current logic is the ability to tell the splitter that always disable subtitles unless a forced flag or a default flag is present. Basically the same default behavior it has now, with the exception being that if you don't find any matches or flags, disable subtitles instead of picking the first one. Just like Haali's default behavior.

This can be achieved now by commenting out line 1413 or LAVFDemuxer.cpp . Since no "best" is set if the above conditions are met, the end of the function is reached and "best" becomes the "none" track.

nevcairiel
8th September 2011, 17:21
Thats one of the oddities, though. I don't consider "default" to actually have that meaning. mkvmerge always flags one track as default, and if you don't remove that flag manually, you would always end up with a subtitle. Doesn't seem desirable to me, personally.

But the advanced mode will let you easily do that, if thats what you like. =)

oddball
8th September 2011, 17:25
All I want is forced Eng subs on English audio and Full English subs on everything else. Simples ;)

nevcairiel
8th September 2011, 17:26
All I want is forced Eng subs on English audio and Full English subs on everything else. Simples ;)

That'll even be possible with the new "simple" config.

glorp
8th September 2011, 17:42
My current idea would be to offer a checkbox for the advanced mode, which then hides the "simple" mode config, and shows the advanced mode. That way there wouldn't be any confusion - i hope.

The first time advanced mode is activated, i would seed it with the generated commands from simple mode. (In the logic, simple mode would always be converted to an advanced string, so i don't have to implement two algorithms to select streams)

That sounds good too. I liked the idea of being able to "see" how the simple options would configure the reg ex since they very well might be all I need. It's just that there lots of 'simple' interacting options that make it a challenge to get the exact logic correct. Seeing it in a written form as a list of priorities is so much easier for me.

You know what you're doing.

cyberbeing
8th September 2011, 17:44
The only downside is that MMX is not available in 64-bit builds (MS Compiler limitation).
If I have time, I'll try booting into Win7 x64 and see if things are any better or change at all.

CruNcher
8th September 2011, 17:45
All I want is forced Eng subs on English audio and Full English subs on everything else. Simples ;)

So some kind of language learning mode in my definition subtitles (closed captions) are first for hearing impaired people, and sure audio and subtitles should be in sync and changeable on demand ;)

STaRGaZeR
8th September 2011, 18:16
Thats one of the oddities, though. I don't consider "default" to actually have that meaning. mkvmerge always flags one track as default, and if you don't remove that flag manually, you would always end up with a subtitle. Doesn't seem desirable to me, personally.

But the advanced mode will let you easily do that, if thats what you like. =)

Yep. However the same can be said when playing anything without flags, like a BD or DVD: one would expect subtitles to be disabled by default (before entering languages and such), instead we get subtitles, and the first track on top of that which is usually not the one you would like to see if you are not English anyway. Also people coming from Haali or MPC's internal will find strange that after switching to LAV subtitles become active with no apparent reason. I have no problem setting the option(s) or modifying the code, but they surely will.

nevcairiel
8th September 2011, 18:33
Yep. However the same can be said when playing anything without flags, like a BD or DVD: one would expect subtitles to be disabled by default (before entering languages and such), instead we get subtitles, and the first track on top of that which is usually not the one you would like to see if you are not English anyway. Also people coming from Haali or MPC's internal will find strange that after switching to LAV subtitles become active with no apparent reason. I have no problem setting the option(s) or modifying the code, but they surely will.

The new defaults will be more sane regarding subtitles enabling. I understand how people got confused by some of the behaviour right now.

Xaurus
8th September 2011, 18:36
nevcairiel,

Not sure if it's very interesting but I ran a few tests with the 42 mbit/s Birds clip on my system (5 runs per decoder). http://www.megaupload.com/?d=1D4BX1U9
All output set as YV12.

LAV Video 0.35:
Avg: 187,6698 fps

ffdshow Video rev. 3972:
Avg: 184,0087 fps

CoreAVC 3.0:
Cuda avg: 47,3796 fps

LAV CUVID 0.12:
Avg: 47,2249 fps

CoreAVC 3.0:
No acc. avg: 40,4673 fps

CPU: Intel Core i7 980x @ 4015 MHz (6 threads, HT off)
GPU: Nvidia 570 GTX

nevcairiel
8th September 2011, 18:37
If I have time, I'll try booting into Win7 x64 and see if things are any better or change at all.

I build you a MMX P010 thingy.

http://files.1f0.de/lavf/LAVFilters-0.35-P010-mmx.zip

It *should* use the MMX version on any Athlon that has SSE2, but does not have SSE4a. Apparently the ffmpeg developers came up with that scheme to detect if a Athlon has slow SSE2.

Sadly there is no easy way for you or me to make sure its using the MMX version, but maybe you'll see a speed difference.
I sadly do not have a whole attic full of hardware to test one. ;)

MasterNobody
8th September 2011, 19:15
nevcairiel
Hi. Can you investigate why this sample test.mkv (http://www.mediafire.com/?qrw5x7qgwh52k9o) cause periodic flickering with LAV Video 0.35 + Haali Video Renderer (03/03/2011) and problems with seeking (also with Haali Video Renderer).
Also why LAV Video doesn't work with Overlay Mixer at all?

jmonier
8th September 2011, 19:22
All I want is forced Eng subs on English audio and Full English subs on everything else. Simples ;)

Unfortunately, there are exceptions for which this will not work. In some movies ("Gran Torino" is an example) the "forced" subtitles (English subtitles for another language within a predominately English film) are a separate shorter subtitle track rather than just a forced flag within a full length SDH English track. So manual selection will always be needed.

clsid
8th September 2011, 20:20
nevcairiel
Hi. Can you investigate why this sample test.mkv (http://www.mediafire.com/?qrw5x7qgwh52k9o) cause periodic flickering with LAV Video 0.35 + Haali Video Renderer (03/03/2011) and problems with seeking (also with Haali Video Renderer).
Also why LAV Video doesn't work with Overlay Mixer at all?Working fine here with Overlay Mixer (tested on win7).

MasterNobody
8th September 2011, 20:29
oh. forgot to mention. XP SP3. And all this in MPC-HC

STaRGaZeR
8th September 2011, 20:59
The new defaults will be more sane regarding subtitles enabling. I understand how people got confused by some of the behaviour right now.

After thinking around a bit, I think I got it backwards. I don't think Haali disables subs when there is no forced or default flag, I think that it doesn't enable them if they are missing. This is how I think Haali's stream selection is:


stream = none;

if (user_settings) {
stream = findtrack(); // All logic goes here. Sky is the limit.
} else if (forced_flags) {
stream = findfirstforcedtrack();
} else if (default_flag) {
stream = finddefaulttrack();
}

return stream;

What do you think about it?

nevcairiel
8th September 2011, 21:09
I really havent used Haali much, but i guess what you're saying is that once you configure a language in haali, you will always get subs, no matter what (unless you use that advanced config with a "off" setting)? The only difference to LAV Splitter being the behaviour without configuration, i guess.

pankov
8th September 2011, 21:14
Nev, guys,
now that you are on the subtitles subject can someone help me with the following problem (general as I see it):
Is there any way to have internal and external subtitles working together? By "working together" I mean that the "cycle" function (next/prev subtitle track) should be able to go through both internal (via the stream switching interface exposed by the splitter) and external subtitle files (via the stream switching interface exposed by subtitle renderer - either VobSub/FFDShow or MPC's internal one).
Is there a way that the media player can distinguish between the different tracks (audio/video/subs) exposed by the splitter and somehow combine only the subtitles ones with the ones from the subs renderer?

This is something that a lot of non English speaking people who use external subs in their language need when they try to learn the foreign language.

nevcairiel
8th September 2011, 21:17
The external subtitles are not managed by the splitter, and the way external subs are managed is different in every player out there, so its really a player task, imho.

I know that someone wanted to try combining those two in the MPC-HC subtitle selector, because right now you have to switch in two different menus..
There is a kind-of standard how streams are grouped in IAMStreamSelect, so it should be possible to do it.

STaRGaZeR
8th September 2011, 21:32
I really havent used Haali much, but i guess what you're saying is that once you configure a language in haali, you will always get subs, no matter what (unless you use that advanced config with a "off" setting)? The only difference to LAV Splitter being the behaviour without configuration, i guess.

Not sure, as I don't use any of those features. However that goes into the user_settings if, and each splitter has its own options and stuff. As you say, the point I'm trying to make is that its default config is optimal IMHO. Can you find any flaws or corner cases in it?

nevcairiel
8th September 2011, 21:37
As you say, the point I'm trying to make is that its default config is optimal IMHO. Can you find any flaws or corner cases in it?

Its a matter of taste, imho. Personally, i usually don't want subs. Forced subs are OK, but normal subs i rather never see, so selecting the default track is not perfect for me.

But then, a default setting will never be perfect, its really a matter of choice.

I can certainly configure it like that. When no languages are configured (and settings not touched in general), use forced/default, but nothing else.
I would tie that to the audio settings, though, so when the user configures audio languages, but no subtitle languages, then at least it trys to select a forced track that matches the audio language - if one is present. If no match is found, fallback to the old logic and try any forced track, and then the default track.

I really don't have much MKVs with subtitles. How is the default flag really used? Do people typically keep it on the one stream that mkvmerge put it on, just because? Or does it have a meaningful use?

mandarinka
8th September 2011, 22:45
It *should* use the MMX version on any Athlon that has SSE2, but does not have SSE4a. Apparently the ffmpeg developers came up with that scheme to detect if a Athlon has slow SSE2.

This nitpick is probably going to be almost irrelevant, but for the sake of completeness...

I suspect that noone has tested this heuristic for the lowend/low-power AMD chips (Bobcat core, a.k.a. Ontario/Zacate/E-350/C-50 etc).
Those cpus reportedly have support for SSE1-3,SSSE3 and SSE4a (and no 3dNow), According to some unofficial info, the SSE instructions get split into two microops just like how it was on A64. OTOH that doesn't necessarily mean it also has to have SSE2 slower than MMX like K8, though.

glorp
8th September 2011, 23:31
I really don't have much MKVs with subtitles. How is the default flag really used? Do people typically keep it on the one stream that mkvmerge put it on, just because? Or does it have a meaningful use?

I don't think Haali really respects it at all (possibly depending on which set of Haali options are used). The advanced option doesn't seem to care anything about the forced flag since it doesn't have any kind of syntax for dealing with it nor have I ever noticed it overriding my old configuration. That's what caused me some initial grief with LAVFSplitter's sub handling because I couldn't simply switch over to relying on the 'Select Only Forced' subs option. The ones I wanted weren't always marked forced. And I imagine this will often be the case in 'third party' muxes.

I do use forced now however as you set up the option and I think it would be valubale to at least respect it for cases like "english for non-english parts" sub tracks. I went thru and changed all the desired tracks to 'forced' in my muxes (thanks to whoever suggested using mkvmerge header editor for that) so that I could still get the same on/off sub behavior.

STaRGaZeR
9th September 2011, 00:28
But then, a default setting will never be perfect, its really a matter of choice.

Indeed. But I would do it like Haali for these two reasons: because I do think it is the best default approach when there are no user settings; and because it's already on Haali, the "reference" MKV splitter, so most people expect Haali behavior.


I can certainly configure it like that. When no languages are configured (and settings not touched in general), use forced/default, but nothing else.
I would tie that to the audio settings, though, so when the user configures audio languages, but no subtitle languages, then at least it trys to select a forced track that matches the audio language - if one is present. If no match is found, fallback to the old logic and try any forced track, and then the default track.

That sounds nice.

I really don't have much MKVs with subtitles. How is the default flag really used? Do people typically keep it on the one stream that mkvmerge put it on, just because? Or does it have a meaningful use?

Typically mkvmerge does everything because muxers either don't know about the option or they don't care, which means default flag in the first track. I've only seen two cases where users explicitly set them manually:

- When you want subs in your MKV but disabled by default, like in all other containers without flags. To do this, you set all of them as no in mkvmerge. Since there are no flags, Haali doesn't display any subs as intended.
- When you have several subs in your MKV, and you want to display a track by default that isn't the first one.

Both cases assume Haali default behavior: no subs unless the flag is set.

stinman
9th September 2011, 03:24
Is this what this is for? is this the same decoder that LoRD MulDer uses in his simple x264 launcher? I've seen and heard of this but not familiar with it. At the moment I use mpc-hc x64 and ffdshow x64 3785 clsid and want to know if there is any benefit to using this in place of mpc-hc own splitter.I can bitstream the DTSHD-MA audio to receiver with ffdshow.Thanks.

4h4h270
9th September 2011, 06:39
I find .34&.35 lav video decode h264 10bit variable frame rate will drop frames sometimes.
But I use .33&ffdshow they work perfect.

nevcairiel
9th September 2011, 06:52
There is really no difference between 0.33 and 0.34 except that it has much faster converters, so i consider that unlikely to be the case.

Xaurus
9th September 2011, 13:45
nevcairiel,

Not sure if it's very interesting but I ran a few tests with the 42 mbit/s Birds clip on my system (5 runs per decoder). http://www.megaupload.com/?d=1D4BX1U9
All output set as YV12.

LAV Video 0.35:
Avg: 187,6698 fps

ffdshow Video rev. 3972:
Avg: 184,0087 fps

CoreAVC 3.0:
Cuda avg: 47,3796 fps

LAV CUVID 0.12:
Avg: 47,2249 fps

CoreAVC 3.0:
No acc. avg: 40,4673 fps

CPU: Intel Core i7 980x @ 4015 MHz (6 threads, HT off)
GPU: Nvidia 570 GTX
After thinking about these numbers for a while, aren't the CUDA based numbers a bit low? About ~47 fps with both CoreAVC and LAV CUVID.

Compare this to 1 thread CPU (~40 fps) or 6 threads (~187 fps)...

I don't get it, I would like to think that using the GPU should be _much_ _much_ faster.

nevcairiel
9th September 2011, 13:56
After thinking about these numbers for a while, aren't the CUDA based numbers a bit low? About ~47 fps with both CoreAVC and LAV CUVID.

Compare this to 1 thread CPU (~40 fps) or 6 threads (~187 fps)...

I don't get it, I would like to think that using the GPU should be _much_ _much_ faster.

The GPU decoders are actually quite alot slower then any good software decoder running on a modern CPU.

On "normal" 1080p content (Blu-ray type files), the GPU (speaking about a VP4) does usually 70 fps, but with some special files like that high-bitrate file, the speed can go down.
Although i thought i did run that file before, and achieved over 60 fps. Which OS and drivers are you on? With recent drivers on Win7, it should be higher then 47 fps, on XP it might actually be like this.

The GPU decoder is basically a small dedicated piece of silicon. Its designed to run fast enough for 1080p60 (achieveing around 70 fps). It does not actually use the main 3D engine of the GPU - therefor it also does not matter how fast your GPU is, as long as it reaches the minimum speed to sustain the decoder.

Xaurus
9th September 2011, 14:44
The GPU decoders are actually quite alot slower then any good software decoder running on a modern CPU.

Which OS and drivers are you on? With recent drivers on Win7, it should be higher then 47 fps, on XP it might actually be like this.
Okay, interesting stuff.

So really the only benefit of LAV CUVID is the hardware deinterlacing if I understand you right?

Driver version: 280.36
OS: Windows 7 Pro x64

CruNcher
9th September 2011, 15:31
Not only the independence of DXVA limitations can be very beneficial for hardcore bitstreams that would play with Nvidias API but not with DXVA correct, the same for Intel and AMDs Native ways all of them are more error prone but all of them suffer from physical overhead which Nvidia so far got very good under controll (Performance wise) even being discrete :)

The GPU decoders are actually quite alot slower then any good software decoder running on a modern CPU.

On "normal" 1080p content (Blu-ray type files), the GPU (speaking about a VP4) does usually 70 fps, but with some special files like that high-bitrate file, the speed can go down.
Although i thought i did run that file before, and achieved over 60 fps. Which OS and drivers are you on? With recent drivers on Win7, it should be higher then 47 fps, on XP it might actually be like this.

The GPU decoder is basically a small dedicated piece of silicon. Its designed to run fast enough for 1080p60 (achieveing around 70 fps). It does not actually use the main 3D engine of the GPU - therefor it also does not matter how fast your GPU is, as long as it reaches the minimum speed to sustain the decoder.

Im not 100% sure but i think Nvidia uses CUDA to fix a problem with certain Mpeg-2 Bitstreams in all VPs up to 4 (5 seems not be affected), neuron2 had to code a special cuda decoder for this problem and it seems Nvidia put the same solution since some time now directly into the driver ;)

nevcairiel
9th September 2011, 15:45
Im not 100% sure but i think Nvidia uses CUDA to fix a problem with certain Mpeg-2 Bitstreams in all VPs up to 4 (5 seems not be affected), neuron2 had to code a special cuda decoder for this problem and it seems Nvidia put the same solution since some time now directly into the driver ;)

Thats true, for MPEG-2 there is actually a decoder written in pure CUDA, but all other formats seem to fallback to the default cuvid decoder when you ask for a CUDA decoder.
But MPEG-2 is unimportant.

CruNcher
9th September 2011, 16:15
Yep absolutely true even Intels Decoder roughly saves 1W here compared to libavcodec in DXVA mode for High Bitrate Mpeg-2
But still depending on the CPU that can be more or less and SB is very Energy efficient not to forget :)

Eliminateur
9th September 2011, 16:54
i wonder if the new Celeron G520 (2.5GHz, dual-core, sandy-bridge uarch) has enough "oomph" to decode 1080p with FLAC audio in software, either with LAV decoder of ffdshow....
anyone with day-zero hardware to test it?.
i know my Xeon 3075 (dual-core, 2.66Ghz, Conroe C2D 65nm -same arch as the original C2D but more FSB-) is not enough(not with HQ RGB32 conversion) and even with YUV output it's barely enough with ~90% usage, so i'm wondering if a uarch roughly 4~5 generations newer but with 2.5GHz would be enough.

anyone with a Pentium G620 to test it? (1MB more cache and 100MHz more clock)

nevcairiel
9th September 2011, 16:57
Yep absolutely true even Intels Decoder roughly saves 1W here compared to libavcodec in DXVA mode for High Bitrate Mpeg-2
But still depending on the CPU that can be more or less and SB is very Energy efficient not to forget :)

Me personally, i would rather use software decoding on a decent CPU, and find a way to use hardware deinterlacing with a software decoder without EVR ... it should be possible, afterall, thats what DXVA2 VP/DXVA-HD is all about.
The question is if its fast enough, with NVIDIA i bet it is, for the others, i cannot say. :)

jmonier
9th September 2011, 17:07
But MPEG-2 is unimportant.

Why? HDTV in the US is all MPEG-2.

nevcairiel
9th September 2011, 17:08
Why? HDTV in the US is all MPEG-2.

All i meant is that a 10 year old PC can probably decode 1080p MPEG-2, its such a simple format that the processing of it is not relevant in any performance considerations.

But MPEG-2 is also obsolete, you can get higher quality in less bytes with H264. Too bad the stations don't notice that. :p

CruNcher
9th September 2011, 17:17
@nev
HTPC as hard as it sounds are obsolete anyways HTARMs are replacing them slowly i cant wait to see how people will be amazed by tegra 3 based solutions Omap 4 based ones (this year) already have a wow effect but Tegra 3 yum yum ;)
Intel needs to hurry with Tri-Gate and 22nm ;)

nevcairiel
9th September 2011, 17:20
Those are still too slow. The CPUs in them are too slow for anything good, they only work for media playback because they again have a GPU with decoding capabilities, still leaving us with the problem of hardware decoders, and their limits.

I'm sure we'll always have better, more flexible, more compatible, software codecs then any hardware implementation. Hardware decoder for H264 10bit, or 4:4:4? I don't see it happening in the next 2 years or so, if even then.
As i said before, CPUs get not only faster, but also alot more efficient. Gaining in efficiency and speed is a win-win for us. So why use a limited hardware decoder chip, if my CPU is sitting there idling away anyhow? I don't really care for that extra few watts of power it uses. If i wanted a "simple" solution, i would certainly use a pre-built device with a power usage way below any HTPC.

CruNcher
9th September 2011, 17:30
yeah since Atom research found its way into Intel Desktop systems it changed massively idling @ 6W-8W is impressive (without the whole system overhead mainboard,ect pure CPU) :)
And Tri-Gate is another revolution to come vs ARM, i wonder if people rather imagine how much more powerfull this research intel does means for x86 (we already see Quantum mechanics effects here) then what AMD achieved with APUs, especially as intel was first here too ;)

Xaurus
9th September 2011, 17:55
Me personally, i would rather use software decoding on a decent CPU, and find a way to use hardware deinterlacing with a software decoder without EVR ... it should be possible, afterall, thats what DXVA2 VP/DXVA-HD is all about.
The question is if its fast enough, with NVIDIA i bet it is, for the others, i cannot say. :)
Would it not be possible to add the hardware deinterlacing capabilities of LAV CUVID to LAV Video somehow?

Then people with strong CPUs and some sort of Nvidia GPU could simply use LAV Video for everything.

With that said, it's not often that I need to use a deinterlacer.

nevcairiel
9th September 2011, 18:03
Would it not be possible to add the hardware deinterlacing capabilities of LAV CUVID to LAV Video somehow?

The NVIDIA raw YUV extensions aren't really implemented, as far as i know.
It would however be possible to do this through DXVA2 Video Processors - with the usual downsides of copying the decoded video to the GPU, and then back again. Not a big deal for NVIDIA, but for ATI thats a damn slow process.



With that said, it's not often that I need to use a deinterlacer.
Neither do i, but i don't want to worry when i find one. :)

jmonier
9th September 2011, 18:22
All i meant is that a 10 year old PC can probably decode 1080p MPEG-2, its such a simple format that the processing of it is not relevant in any performance considerations.

I understand your point now and I agree.

But MPEG-2 is also obsolete, you can get higher quality in less bytes with H264. Too bad the stations don't notice that. :p

I would very much like to see h264 for US TV but the problem is not with the stations but with the consumer equipment in the US: 1) There is too much equipment still around that was manufactured prior to the addition of h264 to the ATSC standard in 2008. 2) Apparently h264 is not being incorporated into more recent equipment (I guess it's not a mandatory part of the standard).

This is one area (at least) in which you in Europe are way ahead of the US but it leaves me with a major requirement for MPEG2 for all my TV recordings (not to mention the DVD's which are not available in Bluray).

SamuriHL
9th September 2011, 18:25
Both my Tivo Premiere XL and my motorola cable box running Tivo (from the cable company) support h.264. I really truly wish they'd start using it as it'd allow them to offer higher res in less bandwidth and potentially offer more HD channels without taxing their networks. Add DD+ into that and we're good to go. :D But, you're right, the US is not even close to caught up on this front. Still LAV Video and LAV CUVID handle my tivo recordings just fine so I can't complain.

cyberbeing
9th September 2011, 18:27
I build you a MMX P010 thingy.

http://files.1f0.de/lavf/LAVFilters-0.35-P010-mmx.zip

Unfortunately, the MMX version is considerably slower than the SSE2 version. Yet since only the rare piece of SSE2 code runs slow on A64, this isn't particularly surprising. Too bad it wasn't that easy, but that's why we test things...

SSE2 P010 = ~64fps
MMX P010 = ~59fps

What about a 3DNOW version? 3DNOW should be faster than MMX on A64.
I'm now thinking this may not be worth the effort, so if you think you can make the SSE2 version faster, you may as well just do that...

nevcairiel
9th September 2011, 18:33
What about a 3DNOW version? 3DNOW should be faster than MMX on A64.

3DNow is really only for floating-point calculations. It only has a very limited set of integer functions (nothing of use here). Its also only running on 64-bit operands like MMX (SSE2 is 128-bit).

Well the MMX was worth a shot, i could probably try some different things if i actually had the hardware up and running, but now its not really worth the effort i think. I did actually optimize the SSE2 code slightly last night as well, which should give a small boost as well.

fastplayer
9th September 2011, 18:49
Probably not worth the effort as darkshikari himself rates K8's SSE2 unit as "sh*tslow" (http://www.cccp-project.net/forums/index.php?topic=3249.msg22981#msg22981). :D

nevcairiel
9th September 2011, 18:52
Well his SSE2 code is vastly more complex. Mine is just something like: For Y, Load, Shift, Write. And for U/V: Load, Shift, Interleave, Write. Its really only 4 instructions, instructions that should be trivial. :)

Now if he complained that the RGB32 converter is slow on his Athlon, that would be a different deal, thats a more demanding code. :p

cyberbeing
9th September 2011, 19:05
Phenom 2:
AMD fails. They didn't send me a prerelease chip to bench on and optimize for!

Way off-topic, but the above made me lol from the thread fastplayer linked. How much things change in two years.

< Dark_Shikari> So, more good news.
< Dark_Shikari> I just got the go-ahead to meet with AMD guys in-person at their actual HQ.
< Dark_Shikari> Let me just say in simple terms:
< Dark_Shikari> AMD can get more done in 30 minutes than Intel can get done in 2 years.
< Dark_Shikari> Me: "I want a bulldozer." AMD: "Give us an address."

nevcairiel
9th September 2011, 19:06
Thats all AMD can do, they are miles behind Intel, so they have to do something. :)

STaRGaZeR
9th September 2011, 19:42
Wait for AVX2 and you'll see some serious shit :D

SEt
9th September 2011, 19:55
You say GPU<->CPU data transfer is fast on nVidia. How? CUDA only? Just locking DXVA2 NV12 1080p surface for readout gives me spikes up to 60ms on G92 card.

cyberbeing
9th September 2011, 20:25
Wait for AVX2 and you'll see some serious shit :D
Haswell should be amazing, but first we need to wait for SandyBridge-E, IvyBridge, IvyBridge-E, until it hopefully arrives in 2013. With IvyBridge getting pushed back, Haswell w/ AVX2 could even fall into 2014 if AMD doesn't bring some solid competition...

BloodySword
9th September 2011, 21:19
The x86 system is at it's limit. There will be no much performance gain I think...
Fact is, that x86 will die with Windows 8.

nevcairiel
9th September 2011, 21:21
The x86 system is at it's limit. There will be no much performance gain I think...
Fact is, that x86 will die with Windows 8.

Nonsense. There is no architecture to replace it (yet).
ARM? Efficient CPUs, sure. But they lack in high-end speed. They are good for embedded systems, phones, tablets, even small laptops, but if you want Desktop like performance, you need more.
Its also lacking the whole support architecture. x86 thrives on the easy mix-and-match of components. ARM is basically for SoCs right now. I, as a user, like being able to pick one CPU, pick a GPU, pick every component, and assemble a system.

ARM is not there yet, it'll be quite a couple of years until then.

Intel is doing the right thing, they are developing actual improvements, instead of just trying to push performance. The Tri-Gate transistors are a good thing, and they'll allow x86 to get stronger in some areas where its lacking right now.

mindbomb
9th September 2011, 22:20
is there any chance you will create some type of wrapper for wmvideo decoder dmo like ffdshow did?

the reason i ask is because i think it would be neat to be able to use the output from that decoder with things like the rgb conversion and the planned yadif deinterlacer in lav video.

also, i heard you are working with eric gur for quicksync support, is that true or just errant speculation?

mandarinka
9th September 2011, 23:30
The x86 system is at it's limit. There will be no much performance gain I think...
Fact is, that x86 will die with Windows 8.

x86 are close to fastest cpus in existence (if not fastest, only very heavyweight and expensive big iron can beat them), they are sold for prices everybody can afford as long as they have some basic income, the software for them is ubiquitous and there is a broad selection of accompanying hardware on sale for the best price. Intel has significantly increased the performance of a single core MHz-for-MHz three times in last years (2006,2008,2011; AMD did this in 2007) and that's while keeping compatibility with all the good old & new software.
So what exactly do you think is bad about x86? That's it's actually pretty good? Other architectures can find a niche via some special feature, but can't challenge x86 as the general-purpose cpu as it stands.

SamuriHL
9th September 2011, 23:31
Nuh uh. X64 rules. /sarcasm. :D

Monamona
10th September 2011, 00:19
Does LAV Video Filter support DXVA?
It seems not.

Midzuki
10th September 2011, 00:21
Fact is, that x86 will die with Windows 8.

Funny, that's not much different from:

Originally Posted by lachs0r (http://doom10.org/index.php?topic=1269.msg8891#msg8891)

First of all, use an operating system from this decade. I will not support Windows XP and older. This **** needs to die.

I see — "they" ;) have hired you both, alright :D

STaRGaZeR
10th September 2011, 00:50
Haswell should be amazing, but first we need to wait for SandyBridge-E, IvyBridge, IvyBridge-E, until it hopefully arrives in 2013. With IvyBridge getting pushed back, Haswell w/ AVX2 could even fall into 2014 if AMD doesn't bring some solid competition...

I expect them between late Q2-early Q4 2013, considering the rumored IB launch date. Let's hope BD doesn't suck as much as everything since the A64.

dead_screem
10th September 2011, 02:07
Here are some bugs I found
First there are two splitters "LAV Splitter" and "LAV Splitter Source". "LAV Splitter" seems to be the only one of the two that dshow will ever use, and even though it's merit is 0x00800004 it still loses out to Haali even though Haali has a merit of 0x00800001. This is because "LAV Splitter" relys on the "File Source (Async.)" filter which has a merit of 0x00400000. And since Haali is higher than "File Source (Async.)" Haali wins out.
Now, "LAV Splitter Source" doesn't need the "File Source (Async.)" because it doubles as one apparently, and it also has a merit of 0x00800004 which is higher than Haali but Haali still gets used for some reason, infact even when lowering Haali's merit way down "LAV Splitter Source" still doesn't get used, there is probably a bug which is preventing dshow from finding it. The only way I can get dshow to use it is by forcing it's use by setting "Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}" at HKEY_CLASSES_ROOT\Media Type\Extensions\.ts for example.

Also, the "LAV Splitter" and "LAV Splitter Source" have the same merit, which isn't good imo. I reccommend setting "LAV Splitter" to 0x00400000 merit as it is not the one that should be used. "LAV Splitter Source" is the one that shoud be used, that is if you can figure out what's wrong causing it to never get used.

When LAV Video filter is installed, if you use Microsoft's Graphedit and go to Graph->Insert Filter... then try to expand Direct Show Filters, Graphedit will suddenly exit (it doesn't appear to crash).

Another bug is the LAV Splitter TS splitter can't seem to connect AAC streams to MPC-HC/gabest or CoreAAC. However LAV Splitter mp4 aac and mkv aac seem to connect fine to MPC-HC or CoreAAC...

Also a few feature requests, can we get a tray icon for the splitter? it really makes switching streams easier if you don't have to go through the player.
And what about supporting service/menu switching in TS files? Haali is the only one to support this IIRC. What I mean is, to switch to a secondary set of associated video/audio PIDs such as 1seg in japanese ISDB-T streams.

CruNcher
10th September 2011, 03:02
Hehe not bad 0 out of 0 nothing of what you list there is actually a bug by Lav Splitter ;)

nevcairiel
10th September 2011, 06:50
also, i heard you are working with eric gur for quicksync support, is that true or just errant speculation?

Just speculation. I'm not sure its really worth it.


Now, "LAV Splitter Source" doesn't need the "File Source (Async.)" because it doubles as one apparently, and it also has a merit of 0x00800004 which is higher than Haali but Haali still gets used for some reason, infact even when lowering Haali's merit way down "LAV Splitter Source" still doesn't get used, there is probably a bug which is preventing dshow from finding it. The only way I can get dshow to use it is by forcing it's use by setting "Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}" at HKEY_CLASSES_ROOT\Media Type\Extensions\.ts for example.

Thats not a bug.
I just don't believe in screwing up the users DirectShow settings like Haali does, and inserting LAV Splitter as the absolute forced splitter. The player should manage which filter is used, and the user should have a choice. Haali doesn't give you a choice. If its installed, it forces every player to use it by setting special entries in the registry. There is no bug that prevents LAV from being used. If you use the LAV installer, it'll set those Source Filter registry keys for you.

In MPC-HC you can also just set Haali to blocked, which should work.


Also, the "LAV Splitter" and "LAV Splitter Source" have the same merit, which isn't good imo. I reccommend setting "LAV Splitter" to 0x00400000 merit as it is not the one that should be used. "LAV Splitter Source" is the one that shoud be used, that is if you can figure out what's wrong causing it to never get used.

The DirectShow "way" is to actually use File Source (async) together with a splitter filter. Not a source filter that does both. This works perfectly if you don't have a power hungry source filter that steals the show.


When LAV Video filter is installed, if you use Microsoft's Graphedit and go to Graph->Insert Filter... then try to expand Direct Show Filters, Graphedit will suddenly exit (it doesn't appear to crash).

Thats a bug in GraphEdit, nothing i can fix. Use GraphStudio.


Also a few feature requests, can we get a tray icon for the splitter? it really makes switching streams easier if you don't have to go through the player.

http://code.google.com/p/lavfilters/issues/detail?id=1


And what about supporting service/menu switching in TS files? Haali is the only one to support this IIRC. What I mean is, to switch to a secondary set of associated video/audio PIDs such as 1seg in japanese ISDB-T streams.
http://code.google.com/p/lavfilters/issues/detail?id=3

betaking
10th September 2011, 07:23
Just speculation. I'm not sure its really worth it.


Thats not a bug.
I just don't believe in screwing up the users DirectShow settings like Haali does, and inserting LAV Splitter as the absolute forced splitter. The player should manage which filter is used, and the user should have a choice. Haali doesn't give you a choice. If its installed, it forces every player to use it by setting special entries in the registry. There is no bug that prevents LAV from being used. If you use the LAV installer, it'll set those Source Filter registry keys for you.

In MPC-HC you can also just set Haali to blocked, which should work.


The DirectShow "way" is to actually use File Source (async) together with a splitter filter. Not a source filter that does both. This works perfectly if you don't have a power hungry source filter that steals the show.


Thats a bug in GraphEdit, nothing i can fix. Use GraphStudio.


http://code.google.com/p/lavfilters/issues/detail?id=1


http://code.google.com/p/lavfilters/issues/detail?id=3

Quote:
Originally Posted by dead_screem
Now, "LAV Splitter Source" doesn't need the "File Source (Async.)" because it doubles as one apparently, and it also has a merit of 0x00800004 which is higher than Haali but Haali still gets used for some reason, infact even when lowering Haali's merit way down "LAV Splitter Source" still doesn't get used, there is probably a bug which is preventing dshow from finding it. The only way I can get dshow to use it is by forcing it's use by setting "Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}" at HKEY_CLASSES_ROOT\Media Type\Extensions\.ts for example.

Thats not a bug.
I just don't believe in screwing up the users DirectShow settings like Haali does, and inserting LAV Splitter as the absolute forced splitter. The player should manage which filter is used, and the user should have a choice. Haali doesn't give you a choice. If its installed, it forces every player to use it by setting special entries in the registry. There is no bug that prevents LAV from being used. If you use the LAV installer, it'll set those Source Filter registry keys for you.

In MPC-HC you can also just set Haali to blocked, which should work.
YES last haali install to my system put some to my registry
like it "Source Filter"="XX" at HKEY_CLASSES_ROOT\Media Type\Extensions\.mp4
"Source Filter"="XX" at HKEY_CLASSES_ROOT\Media Type\Extensions\.264
if I use lavspiltte and lavvideo by wmp12 to decoder mpeg4 files(endecoder by X.264 or H.264)WMP12 give my error!First of all I have in HAALI's settings to disable HAALI MKV MP4 separator!
if my del "Source Filter"="XX" at HKEY_CLASSES_ROOT\Media Type\Extensions\.mp4 and "Source Filter"="XX" at HKEY_CLASSES_ROOT\Media Type\Extensions\.264
wmp12 can use lavspiltte and lavvideo to decoder mpeg4 files(endecoder by X.264 or H.264) to fine! so i Never install HAALI!!!!!And to my friends recommend LAV!
big thanks for nev!

dead_screem
10th September 2011, 08:34
Thats not a bug.
I just don't believe in screwing up the users DirectShow settings like Haali does, and inserting LAV Splitter as the absolute forced splitter. The player should manage which filter is used, and the user should have a choice. Haali doesn't give you a choice. If its installed, it forces every player to use it by setting special entries in the registry. There is no bug that prevents LAV from being used. If you use the LAV installer, it'll set those Source Filter registry keys for you.

I know what Haali does, my point was that the "LAV Splitter Source" version of the LAV splitter does not load in dshow even with Haali forced reg keys removed and it's merit lowered or even completely uninstalled. only the Version which requires File Source (Async.) will ever be loaded. The "LAV Splitter Source" version can only be used if its forced to by those same reg keys Haali uses.
And if like you also said, the File Source (Async.) requiring ver is the right way to do it anyway... I take it then that "LAV Splitter Source" not loading in dshow normally is by design then? then why is this version of LAV Splitter which does not need File Source (Async.) even included if it's normally never used?

In any case using the File Source (Async.) ver seems to cause slower opening times, probably mostly because File Source (Async.) tries to connect to other filters first before it tries to connect to LAv Splitter. So I'm using those same reg keys to force the use of the "LAV Splitter Source" version to avoid that nonsense. Whyever it's not used normally, I'm glad it's still included anyhow.

Thats a bug in GraphEdit, nothing i can fix. Use GraphStudio.
Oh, well ok then.

http://code.google.com/p/lavfilters/issues/detail?id=1


http://code.google.com/p/lavfilters/issues/detail?id=3cool. I take it these are low priority then?

and what about LAV Splitter TS AAC not connecting to MPC-HC or CoreAAC? Is this not a bug as well? What's the reason?

nevcairiel
10th September 2011, 09:17
The Source variant is also required for the Blu-ray support, because it needs to open more then one file.
Anyhow, like i said, if you use the Installer, it'll actually create those "Source Filter" entries. Using the Installer is the recommended way, unless you really know what you're doing with the .zip files.

Regarding AAC, all AAC codecs based on libfaad2 don't work if they don't get AAC init data. Its a serious limitation in the codecs, so meh. I can probably fix that somehow by artificially creating that init data.

dead_screem
10th September 2011, 09:30
The Source variant is also required for the Blu-ray support, because it needs to open more then one file.
Anyhow, like i said, if you use the Installer, it'll actually create those "Source Filter" entries. Using the Installer is the recommended way, unless you really know what you're doing with the .zip files.ok... gotcha.

Regarding AAC, all AAC codecs based on libfaad2 don't work if they don't get AAC init data. Its a serious limitation in the codecs, so meh. I can probably fix that somehow by artificially creating that init data.
So then faad2 and CoreAAC and similar decoders are bugged?
Does that mean MPC-HC mpeg ts splitter and Haali ts support are bugged too since they work with MPC-HC/faad2 and CoreAAC? Maybe then MPC-HC guys should fix their splitter and their internal faad2 AAC decoder. Getting Core to fix CoreAAC would be pretty unlikely, as I've been waiting for them to fix the stupid channel order bugs since CoreAAC 2.0 was released..

nevcairiel
10th September 2011, 10:03
Its something special about AAC wrapped in ADTS, i haven't really bothered to check into it much.
Both ffdshow and my own LAV Audio offer libavcodec based AAC decoders, which work just fine and support the same features.

Edit:
I just fixed it, adding proper parsing for ADTS.

nevcairiel
10th September 2011, 17:21
You say GPU<->CPU data transfer is fast on nVidia. How? CUDA only? Just locking DXVA2 NV12 1080p surface for readout gives me spikes up to 60ms on G92 card.

Thats pretty much what i do.

I dunno about older cards, but on my GTX 570, it tops out at around 200 fps of 1080p NV12 material (with 250 fps from the decoder itself) - that is surface upload, DXVA2-VP processing, surface download.
The process isn't even streamlined yet or anything, i just slaped some test code together to see if its working at all.

I should publish some test version some day for speed tests on different hardware, especially ATI.

SEt
10th September 2011, 19:36
Test version would be nice - I'm not sure is I am doing something wrong or it's hardware/driver to blame.

nevcairiel
10th September 2011, 20:12
I'm currently re-writing it from DXVA2-VP to use DXVA-HD instead, once its at least working somewhat, i can post something to test.

fastplayer
10th September 2011, 20:23
Is DxDiag a reliable indicator of DXVA-HD support? It says "not supported" for my HD4670... :(

dead_screem
10th September 2011, 20:51
Its something special about AAC wrapped in ADTS, i haven't really bothered to check into it much.
Both ffdshow and my own LAV Audio offer libavcodec based AAC decoders, which work just fine and support the same features.

Edit:
I just fixed it, adding proper parsing for ADTS.

Cool. What about AAC in LATM for MPEG-TS? Is it the same thing?

nevcairiel
10th September 2011, 21:03
Cool. What about AAC in LATM for MPEG-TS? Is it the same thing?

LATM requires decoder support. Use LAV Audio for the best results. ;)


Is DxDiag a reliable indicator of DXVA-HD support? It says "not supported" for my HD4670... :(
No idea. NVIDIA supports it, and its working marvelous. Much better then my previous attempt with DXVA2-VP.

Of course, DXVA-HD is limited to Windows 7 (not even Vista supports it), but its so easy to use, i can't help it. :p

nevcairiel
10th September 2011, 21:28
WARNING: Do not use this version without reading this post thoroughly, and understand what it means. Its a TEST version for a new feature, its not usable otherwise!

http://files.1f0.de/lavf/LAVVideo-dxvahd-test.zip

This version will try to send every video frame through a DXVA-HD Video Processor. The idea is to use the GPUs deinterlacer without DXVA or EVR, but its nowhere near finished.
Why am i posting this in its unfinished, barely working state? Mostly, i'm interested if ATI supports this at all. And if they do, how fast it'll be. Another point is speed on other NVIDIA hardware.

How to test? Drop this into your LAV Filters install.
IMPORTANT: Configure LAV Video to only output NV12, disable all other pixel formats, or stuff WILL break. Its not finished yet!

You'll notice if its working, i left a small "feature" in there which should create some visible chroma error in the video, so its quite obvious that its active.

Like i said, i'm mostly interested if it works for you at all, and if it does, how fast.
You can Benchmark with GraphStudios (http://blog.monogram.sk/janos/tools/monogram-graphstudio/) Decoder Performance Test (in the "View" menu)

Here is a short H264 1080i sample i used to test:
http://files.1f0.de/samples/Test_clip_avc.1080i59.94.ac3.5.1.mkv

For reference, without the feature i get around 250 fps, with it enabled i get 200 on that sample file.

It only works on Windows 7! DXVA HD is not supported on previous versions of Windows.

This is a debug build that'll leave a log file on your Desktop. If it doesn't work, it might give some clues why. It also dumps the capabilities of your hardware in the log. The DXVA-HD related parts should be right on top of the log (everything up to "CTransformInputPin::CTransformInputPin")

SamuriHL
10th September 2011, 21:36
Thanks, Nev. If I get a chance tomorrow I'll try it out on my 450 and throw my AMD 5870 at it and see what we get for results.

pankov
10th September 2011, 21:39
Nev,
this dxvahd test version of LAVVideo.ax doesn't load on my system. It also can't be registered using regsvr. Is this normal? Am I the only one having a problem?

Superb
10th September 2011, 21:54
http://i.minus.com/iwJKiTJ6xOGfS.png

I simply replaced the LAVVideo.ax inside C:\Program Files\LAV Filters\x86 w/ the ax file inside the zip.

EDIT: btw, does the time measure filter (which GraphStudio uses) distorts the image on your machine as well? It doesn't affect the test, but I still wonder...

Xaurus
10th September 2011, 22:09
Nev,
this dxvahd test version of LAVVideo.ax doesn't load on my system. It also can't be registered using regsvr. Is this normal? Am I the only one having a problem?
Same here. Can't register it and it's not usable by simply replacing the "real" LAVVideo.ax file.

PrayForMojo
10th September 2011, 22:11
Is there a way to output to three front speakers with the Lavaudio decoder like you can with the AC3filter?

clsid
10th September 2011, 22:17
That debug build probably needs the debug c++ runtime.

Superb
10th September 2011, 22:20
That debug build probably needs the debug c++ runtime.Then it would make sense it worked on my machine. I have Visual Studio (which includes VC++) 2010 installed.

Superb
10th September 2011, 22:22
Is there a way to output to three front speakers with the Lavaudio decoder like you can with the AC3filter?You mean expand stereo to center? Nope.
LAV Audio doesn't have advanced mixing capabilities yet (only some basic ones, like "mono to stereo").

nevcairiel
10th September 2011, 22:24
I uploaded a new build, using static linking against the debug runtime. I usually have dynamic linking on for debug, because it makes certain debug tasks easier.

Same URL
http://files.1f0.de/lavf/LAVVideo-dxvahd-test.zip

For everyone that didn't read the old post:
READ BEFORE DOWNLOAD! http://forum.doom9.org/showthread.php?p=1525394#post1525394

Also, please mention some system specs if you post some results. :)

Superb
10th September 2011, 22:27
Also, please mention some system specs if you post some results. :)Mine are written in my signature.

nevcairiel
10th September 2011, 22:28
Mine are written in my signature.

I saw, just as a reminder for everyone else. ;)

VipZ
10th September 2011, 22:30
Doesn't seem DXVA-HD is supported on the ATI 5xxx series :(

LAVVideo.ax(tid 1e0c) 554 : -> DXVAHD_CreateDevice failed (hr: 80004002)

nevcairiel
10th September 2011, 22:36
Doesn't seem DXVA-HD is supported on the ATI 5xxx series :(

LAVVideo.ax(tid 1e0c) 554 : -> DXVAHD_CreateDevice failed (hr: 80004002)

Thats sad. Its such a nice API. DXVA2-VP does not allow me to use the full-quality deinterlacing on NVIDIA, but DXVA-HD does (at least as far as i can see)

Oh well. I still have the code from DXVA2-VP, i should put that up as well for performance testing.

fairchild
10th September 2011, 22:44
my results for the Test_clip_avc.1080i59.94.ac3.5.1.mkv clip are:

avg around 141-142 fps with the latest stable LavVideo

avg around 128-129 fps with the LAVVideo-dxvahd-test

Here is the top of the log:

LAVVideo.ax(tid 1344) 0 : DXVAVideoProcessor::InitializeD3D9(): Initializing D3DEx Interfaces
LAVVideo.ax(tid 1344) 20 : -> Creating D3D9Ex Device
LAVVideo.ax(tid 1344) 60 : DXVAVideoProcessor::InitializeDXVA2(): Initializing DXVA-HD Interfaces
LAVVideo.ax(tid 1344) 60 : -> Creating DXVAHD_Device
LAVVideo.ax(tid 1344) 60 : -> DXVAHD_CreateDevice failed (hr: 80004002)
LAVVideo.ax(tid 1344) 60 : CTransformInputPin::CTransformInputPin

Also it always crashes after you close the media file which seems to play fine throughout, not sure if this is normal. System in sig. I also don't notice a difference with it on or off, not sure what I'm looking for that you said is easy to notice if it's working. I even tried another interlaced video that I had and even though it plays fine, deinterlacing is not happening. (again not sure if this is normal as this is a test file and maybe the actual deinterlacing is not active yet)

nevcairiel
10th September 2011, 22:46
It worked on your ATI card? Did you see the chroma errors?

The crash is from a bug in madVR, which causes a debug thing to catch a breakpoint.

Xaurus
10th September 2011, 22:47
Nev,

Here's the results:
test build (http://home.halden.net/mordor/lav1.png)
normal build (http://home.halden.net/mordor/lav2.png)

All specs & results in the screenshot.

mindbomb
10th September 2011, 22:48
19.6 FPS stable
17.9 FPS test

amd e-350

log here
http://pastebin.com/pt5WCxiG

fairchild
10th September 2011, 22:51
It worked on your ATI card? Did you see the chroma errors?

The crash is from a bug in madVR, which causes a debug thing to catch a breakpoint.

Yes it runs fine on my HD5830 with 11.8 drivers + 11.8 CAP3. I don't see any difference between the two versions. What should I be noticing as far as chroma errors in that test video?

SEt
10th September 2011, 22:55
Without: 263, with deinterlacing on G92: 133

I can't say the quality is good though.

noee
10th September 2011, 23:00
On my Toshiba laptop, A6-3400M HD6520, Win7 x64 Home

~54fps and the cores are all at 98% and I can even see the turbo core come on the one core. Hard for me to tell, is the chroma "bug" in the transitions?

I'll try the 6570 HTPC next...

nevcairiel
10th September 2011, 23:04
It probably does nothing for ATI/AMD cards. DXVA-HD seems not supported. You would notice the chroma problem immediately.

Here is another version, this one uses DXVA2 Video Processing, instead of DXVA-HD.

http://files.1f0.de/lavf/LAVVideo-dxva2vp-test.zip

This should probably work on ATI/AMD.
Same rules and restrictions apply.

BTW, its not tuned for quality or anything at all yet. Its just to test device capabilities and speed.
Its also a debug build, which is generally slower then a release build. ;)

fairchild
10th September 2011, 23:05
Yep, I just looked at the log. Even though it runs and whatnot, I guess it's not doing anything per this line:

LAVVideo.ax(tid 1344) 60 : -> DXVAHD_CreateDevice failed (hr: 80004002)

noee
10th September 2011, 23:12
On my 6520, the DXVA2 version gets to the end of the first pass and then just stops. Here is the log:

LAVVideo.ax(tid 670) 57908 : DXVAVideoProcessor::InitializeD3D9(): Initializing D3DEx Interfaces
LAVVideo.ax(tid 670) 57986 : -> Creating D3D9Ex Device
LAVVideo.ax(tid 670) 58074 : DXVAVideoProcessor::InitializeDXVA2(): Initializing DXVA2 Interfaces
LAVVideo.ax(tid 670) 58074 : -> Creating IDirectXVideoProcessorService
LAVVideo.ax(tid 670) 58074 : -> Querying Processor Device GUIDs
LAVVideo.ax(tid 670) 58075 : -> Processor 0 with GUID {3C5323C1-6FB7-44F5-9081-056BF2EE449D}
LAVVideo.ax(tid 670) 58075 : -> Target 0: 22
LAVVideo.ax(tid 670) 58075 : -> Target 1: NV12
LAVVideo.ax(tid 670) 58075 : -> Processor does support NV12
LAVVideo.ax(tid 670) 58075 : -> Querying Processor capabilities
LAVVideo.ax(tid 670) 58075 : -> DeviceCaps: 1
LAVVideo.ax(tid 670) 58075 : -> InputPool: 4
LAVVideo.ax(tid 670) 58075 : -> NumForwardRefSamples: 0
LAVVideo.ax(tid 670) 58075 : -> NumBackwardRefSamples: 2
LAVVideo.ax(tid 670) 58075 : -> DeinterlaceTechnology: 64
LAVVideo.ax(tid 670) 58075 : -> Querying ProcAmp values
LAVVideo.ax(tid 670) 58075 : -> Querying Filter values
LAVVideo.ax(tid 670) 58075 : -> Creating surfaces
LAVVideo.ax(tid 670) 58076 : -> Creating Video Processor
LAVVideo.ax(tid 670) 58076 : -> Creating Processor and Surfaces successfull
LAVVideo.ax(tid 670) 58076 : CTransformInputPin::CTransformInputPin
LAVVideo.ax(tid 670) 58076 : CTransformOutputPin::CTransformOutputPin
LAVVideo.ax(tid 670) 58076 : SetMediaType -- in
LAVVideo.ax(tid 670) 58076 : Shutting down ffmpeg...
LAVVideo.ax(tid 670) 58076 : Initializing ffmpeg for codec 28
LAVVideo.ax(tid 670) 58076 : -> File extension: .mkv
LAVVideo.ax(tid 670) 58077 : -> Processing extradata of 27 bytes
LAVVideo.ax(tid 670) 58079 : -> ffmpeg codec opened successfully (ret: 0)
LAVVideo.ax(tid 670) 58080 : Trying to connect Pins :
LAVVideo.ax(tid 670) 58080 : <XForm Out>
LAVVideo.ax(tid 670) 58080 : <Input>
LAVVideo.ax(tid 670) 58080 : ::GetMediaType(): position: 0
LAVVideo.ax(tid 670) 58080 : Trying media type:
LAVVideo.ax(tid 670) 58080 : major type: MEDIATYPE_Video
LAVVideo.ax(tid 670) 58080 : sub type : MEDIASUBTYPE_NV12
LAVVideo.ax(tid 670) 58080 : ::CheckTransform()
LAVVideo.ax(tid 670) 58080 : ::CheckTransform()
LAVVideo.ax(tid 670) 58080 : SetMediaType -- out
LAVVideo.ax(tid 670) 58081 : ::DecideBufferSize()
LAVVideo.ax(tid 670) 58081 : Connection succeeded
LAVVideo.ax(tid 670) 58081 : ::GetMediaType(): position: 0
LAVVideo.ax(tid 670) 58081 : ::CheckTransform()
LAVVideo.ax(tid 670) 58081 : ::BreakConnect
LAVVideo.ax(tid 670) 58081 : Trying to connect Pins :
LAVVideo.ax(tid 670) 58081 : <XForm Out>
LAVVideo.ax(tid 670) 58081 : <Input>
LAVVideo.ax(tid 670) 58081 : Trying media type:
LAVVideo.ax(tid 670) 58081 : major type: MEDIATYPE_Video
LAVVideo.ax(tid 670) 58081 : sub type : MEDIASUBTYPE_NV12
LAVVideo.ax(tid 670) 58081 : ::CheckTransform()
LAVVideo.ax(tid 670) 58081 : ::CheckTransform()
LAVVideo.ax(tid 670) 58081 : SetMediaType -- out
LAVVideo.ax(tid 670) 58082 : ::DecideBufferSize()
LAVVideo.ax(tid 670) 58082 : Connection succeeded
LAVVideo.ax(tid 2cc) 58086 : ::NewSegment - 0 / 0
LAVVideo.ax(tid b60) 58087 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid b60) 58150 : ::ReconnectOutput(): Performing reconnect
LAVVideo.ax(tid 670) 103342 : ::BeginFlush
LAVVideo.ax(tid 670) 103343 : ::EndFlush
LAVVideo.ax(tid 670) 103344 : ::BreakConnect
LAVVideo.ax(tid 670) 103344 : Shutting down ffmpeg...
LAVVideo.ax(tid 670) 103384 : ::BreakConnect
LAVVideo.ax(tid 670) 103386 : Shutting down ffmpeg...
LAVVideo.ax(tid 670) 103410 : CTransformOutputPin::~CTransformOutputPin

nevcairiel
10th September 2011, 23:17
Are you sure it just stops, and doesn't just take *very long*? (which could happen if the process is just very slow)

fairchild
10th September 2011, 23:17
DXVA2 version for me is similair to previous poster, it loads runs like a slideshow on the test file. I close the file as it is probably going to take a loooooong time to complete. It won't complete graphstudio, i mean it probably does but I just stopped it manually as well.

LAVVideo.ax(tid c98) 1 : DXVAVideoProcessor::InitializeD3D9(): Initializing D3DEx Interfaces
LAVVideo.ax(tid c98) 18 : -> Creating D3D9Ex Device
LAVVideo.ax(tid c98) 54 : DXVAVideoProcessor::InitializeDXVA2(): Initializing DXVA2 Interfaces
LAVVideo.ax(tid c98) 54 : -> Creating IDirectXVideoProcessorService
LAVVideo.ax(tid c98) 54 : -> Querying Processor Device GUIDs
LAVVideo.ax(tid c98) 54 : -> Processor 0 with GUID {3C5323C1-6FB7-44F5-9081-056BF2EE449D}
LAVVideo.ax(tid c98) 54 : -> Target 0: 22
LAVVideo.ax(tid c98) 54 : -> Target 1: NV12
LAVVideo.ax(tid c98) 54 : -> Processor does support NV12
LAVVideo.ax(tid c98) 54 : -> Querying Processor capabilities
LAVVideo.ax(tid c98) 54 : -> DeviceCaps: 1
LAVVideo.ax(tid c98) 54 : -> InputPool: 4
LAVVideo.ax(tid c98) 54 : -> NumForwardRefSamples: 0
LAVVideo.ax(tid c98) 54 : -> NumBackwardRefSamples: 2
LAVVideo.ax(tid c98) 54 : -> DeinterlaceTechnology: 64
LAVVideo.ax(tid c98) 55 : -> Querying ProcAmp values
LAVVideo.ax(tid c98) 55 : -> Querying Filter values
LAVVideo.ax(tid c98) 55 : -> Creating surfaces
LAVVideo.ax(tid c98) 55 : -> Creating Video Processor
LAVVideo.ax(tid c98) 55 : -> Creating Processor and Surfaces successfull
LAVVideo.ax(tid 1080) 55 : CTransformInputPin::CTransformInputPin
LAVVideo.ax(tid 1080) 55 : CTransformOutputPin::CTransformOutputPin
LAVVideo.ax(tid 1080) 55 : SetMediaType -- in
LAVVideo.ax(tid 1080) 55 : Shutting down ffmpeg...
LAVVideo.ax(tid 1080) 55 : Initializing ffmpeg for codec 28
LAVVideo.ax(tid 1080) 55 : -> File extension: .mkv
LAVVideo.ax(tid 1080) 55 : -> Processing extradata of 27 bytes
LAVVideo.ax(tid 1080) 57 : -> ffmpeg codec opened successfully (ret: 0)
LAVVideo.ax(tid 1080) 57 : ::BreakConnect
LAVVideo.ax(tid 1080) 57 : Shutting down ffmpeg...
LAVVideo.ax(tid c98) 62 : Shutting down ffmpeg...
LAVVideo.ax(tid c98) 64 : CTransformOutputPin::~CTransformOutputPin

nevcairiel
10th September 2011, 23:19
I guess the rumors are true, and ATI is really abysmally slow on memory copys.

Fun fact: Intels IGP supports DXVA-HD, at least partly. It supports NV12 input, but only YUY2 or RGB output.
Its somewhat slow, but still watchable.

Qaq
10th September 2011, 23:25
I wonder if DXVA-HD check with DXVAChecker is valid. Can't check myself cause I stick with XP these days.

nevcairiel
10th September 2011, 23:26
I wonder if DXVA-HD check with DXVAChecker is valid. Can't check myself cause I stick with XP these days.

I think it actually is.

noee
10th September 2011, 23:27
Athlon II @ 2.2Ghz w/HD6570, Win7 x64 Ult

HD: 77fps
DXVA2: stops at the end of the first pass, no stats, same as the failure I listed above for the 6520.

Yeah, I'm pretty sure it just stops, I waited a couple of minutes, it says :18/:18 and then it just sits there, GraphStudio is responsive at that point. Not sure what to make of that.

fairchild
10th September 2011, 23:27
Does this mean there is no hope for ATI HW deinterlacing with MadVR? For now the workaround for me is to use EVR.CP when I want to watch an interlaced video (which thankfully for me is a minor thing). I could alternatively run ffdshow raw video filter + yadif SW deinterlacing but I'd rather keep my filter chain as direct as possible. (LAV splitter - Lav Video - MadVR/EVR)

nevcairiel
10th September 2011, 23:29
Does this mean there is no hope for ATI HW deinterlacing with MadVR?

I dunno. Inside a renderer, there are other possibilities. AFAIK, only the download of the image is so super slow, which could be avoided if you jsut use that surface to render it.

Maybe there also are some tricks to make it faster, but i don't have any ATI hardware to test things on.

The odd thing is, somehow VLCs DXVA works on ATI/AMD as well, and they copy the image back from a D3D surface as well, so there must be some trick.

VipZ
10th September 2011, 23:40
Same for me, with DXVA2 its pretty much a slide show.

Just hope the AMD HD 7xxx will solve this.

SEt
10th September 2011, 23:53
I heard you can StretchRect to RGB render target and then GetRenderTargetData on ATI, but having to convert to RGB doesn't impress me.

ForceX
10th September 2011, 23:59
Not that I care much for interlaced content, or think the aged hardware can handle it, but both my laptop's integrated Intel and nVidia graphics are failing with same kind of error:

Intel GMA HD http://tinypaste.com/32bd1
nVidia 310M http://tinypaste.com/59667

nevcairiel
11th September 2011, 00:00
Not that I care much for interlaced content, or think the aged hardware can handle it, but both my laptop's integrated Intel and nVidia graphics are failing with same kind of error:

Intel GMA HD http://tinypaste.com/32bd1
nVidia 310M http://tinypaste.com/59667

Sounds like whatever renderer you're using doesnt support NV12. :)

Anyway, the main point of info i got today was that ATI/AMD is still too slow in this area, and sadly doesn't even support DXVA-HD at all.
Personally, i use NVIDIA in all my systems, so i don't care that much of a great deal. That Intel supports DXVA-HD is nice, although its also too slow (NVIDIA 200 fps, Intel 30 fps) - but it leaves me hopeful for future Intel drivers/IGPs

Since i want to move away from hardware decoding due to some limitations and annoyances of the black-box decoders, i'll continue this idea, and see where it brings me. LAV Video + DXVA-HD processing to deinterlace .. sounds like a good plan!

Xaurus
11th September 2011, 00:09
Since i want to move away from hardware decoding due to some limitations and annoyances of the black-box decoders, i'll continue this idea, and see where it brings me. LAV Video + DXVA-HD processing to deinterlace .. sounds like a good plan!
Nev, do you have any idea why I only got ~93 fps with the test build? I have the same gfx card as you do.

Superb
11th September 2011, 00:12
Nev, do you have any idea why I only got ~93 fps with the test build? I have the same gfx card as you do.Because LAV Video uses the CPU when decoding. The GPU only affects how many fps you loose when using the DXVA-HD API...
You probably have a slower CPU.

EDIT: nvmind. missed your CPU image. nevcairiel's comment cleared it.

nevcairiel
11th September 2011, 00:15
Because LAV Video uses the CPU when decoding. The GPU only affects how many fps you loose when using the DXVA-HD API...
You probably have a slower CPU.

Thats not it, his CPU image also shows ~240 fps.

Its probably some setting in the NVIDIA control panel, like forcing a high level of AA system-wide, or enabling things like noise reduction/edge enhancement.
Its also running in the "Playback" preset, which means it doesn't go up into the next performance mode as long as its fast enough for the FPS i gave it.

SamuriHL
11th September 2011, 00:21
Yea, turn that crap off if you wanna do video. :)

Xaurus
11th September 2011, 00:48
I thought I had disabled all that stuff so I took a screenshot of the settings, please see screenshots below:

General settings (combined two pictures so that you see all settings) (http://home.halden.net/mordor/cp.png)
video image settings (http://home.halden.net/mordor/cp2.png)
video color settings (http://home.halden.net/mordor/cp3.png)

CruNcher
11th September 2011, 00:57
No video visible and alot of


LAVVideo.ax(tid b2c) 174340 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174373 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174407 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174440 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174473 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174507 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174540 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174573 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174607 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174640 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174673 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174707 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174740 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174774 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174807 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174840 : VideoProcessBltHD failed (hr: 80070057)
LAVVideo.ax(tid b2c) 174873 : VideoProcessBltHD failed (hr: 80070057)


else normal it runs 160 fps and with this build 140 fps (null renderer)

Core i-5 2400

Driver Version: 8.15.10.2476
Operating System: Windows 7 Service Pack 1(6.1.7601)
Default Language: German (Germany)
DirectX* Version: 10.1
Physical Memory: 8039 MB
Minimum Graphics Memory: 128 MB
Maximum Graphics Memory: 1760 MB
Graphics Memory in Use: 163 MB

Intel(R) HD Graphics 2000
Video BIOS: 2080.0

nightfly
11th September 2011, 05:38
I've been trying to get regular DVD iso images to playback via LAV. Is this not supported (menu and such)? No problems using default MPC-HC setup.

My External Filters setup:
Lav Splitter v.35
Lav Splitter Src v.35
Lav CUVID v.12
Lav Audio v.35

Am I missing something? Thanks.

Midzuki
11th September 2011, 06:08
@ nightfly: No, LAV Splitter is not a DVD navigator, and LAV Video does not include a subpicture decompressor (which, BTW, would require a major fix in ffmpeg/libav).

fairchild
11th September 2011, 06:24
Yeah to watch DVD's you need to have another video decoder installed in system which can decode DVD. I use ffdshow libavcodec and it works just fine with DVD Navigator + Lav Audio. I can play DVD's with either MPC-HC or PotPlayer just fine. I'd imagine you could also use your video player's internal codecs as well if they have some that support DVD decoding (MPEG2 + DVD decoding).

Oh yeah I forgot to add, if you bypass the DVD menu's and just open the individual movie VOB files, then Lav Splitter + Lav Video + Lav Audio work just fine for me.

hoborg
11th September 2011, 07:16
It probably does nothing for ATI/AMD cards. DXVA-HD seems not supported. You would notice the chroma problem immediately.

Here is another version, this one uses DXVA2 Video Processing, instead of DXVA-HD.

http://files.1f0.de/lavf/LAVVideo-dxva2vp-test.zip

This should probably work on ATI/AMD.
Same rules and restrictions apply.

BTW, its not tuned for quality or anything at all yet. Its just to test device capabilities and speed.
Its also a debug build, which is generally slower then a release build. ;)

I cannot register it, what is missing? Module failed to load.

nevcairiel
11th September 2011, 07:23
It requires Windows 7, on XP it won't even load.
Sounds to me its just not finding the required libraries (which are not present on XP)

hoborg
11th September 2011, 07:33
It requires Windows 7, on XP it won't even load.
Sounds to me its just not finding the required libraries (which are not present on XP)

Win7x64 here.

roytam1
11th September 2011, 07:36
It requires Windows 7, on XP it won't even load.
Sounds to me its just not finding the required libraries (which are not present on XP)

2 missing imports in XP:
Direct3DCreate9Ex() in d3d9.dll, according http://msdn.microsoft.com/en-us/library/cc656710.aspx you have to use Direct3DCreate9() instead.

DXVAHD_CreateDevice() in dxva2.dll, you may use dynamic loading instead.

nevcairiel
11th September 2011, 07:47
2 missing imports in XP:
Direct3DCreate9Ex() in d3d9.dll, according http://msdn.microsoft.com/en-us/library/cc656710.aspx you have to use Direct3DCreate9() instead.

DXVAHD_CreateDevice() in dxva2.dll, you may use dynamic loading instead.

Its not meant to work on XP.
DXVAHD requires a 9Ex device, a "normal" D3D9 device is not good enough. ;)

Don't worry, if it ends up in the main code one day, it'll dynamically load those functions, to ensure the whole filter still works on XP.

Thunderbolt8
11th September 2011, 08:08
no video at all with dxv2

video with dxva-hd looked normal. but I had 2 seperate halfes of the picture, one being b&w, the other green, when I used ffdshow (set to accept raw video) in between lav video and madvr

Xaurus
11th September 2011, 10:53
I thought I had disabled all that stuff so I took a screenshot of the settings, please see screenshots below:

General settings (combined two pictures so that you see all settings) (http://home.halden.net/mordor/cp.png)
video image settings (http://home.halden.net/mordor/cp2.png)
video color settings (http://home.halden.net/mordor/cp3.png)
I've since added mpc-hc.exe to the program list in Nvidia control panel and disabled everything (AA, AF set to Off etc). It didn't make a difference, unfortunately.

So I have still no clue why it was so slow compared to your ~200 fps, nev.

mzso
11th September 2011, 11:36
I guess the rumors are true, and ATI is really abysmally slow on memory copys.

Fun fact: Intels IGP supports DXVA-HD, at least partly. It supports NV12 input, but only YUY2 or RGB output.
Its somewhat slow, but still watchable.

Is it still true with fusion processors? If I understand correctly there's only one memory in that case. But there might be something that complicates things I don't know of...

pankov
11th September 2011, 19:19
Guys,
today I tried to bistream some DTS in WAV and sadly it didn't work. It either crashed the player (tested with Zoom Player, MPC-HC and Graph Studio) or resulted in some strange noise clicks in the speakers connected to the receiver (Integra DTR-40.3).
Strangely it worked a few times but only if I start the playback without bitstreaming and enable it afterwards in LAV Audio's config.
Is this problem happening only to me or there is some kind of general limitation? If it's not possible to make it work is it at least possible to make it not crash the player?
I have absolutely no problems with such files if I decode the stream with LAV Audio and then send it as multichannel PCM over the HDMI output of my video card.

xiulet
11th September 2011, 21:00
hi all, this video is stuttering when i am using lav audio, but when i use internal mph hc filters (dts/ac3) it is playing ok, both with internal or haali ps/ts/pva filter.
extract_top_o_ne.m2ts (http://i.minus.com/1329761447/rVmZA5c3f6iuafsvig0aYw/dizHS4gKyNtli.m2ts)

http://img268.imageshack.us/img268/3194/snap1iq.png

This is my mpc-hc.ini (http://i.minus.com/1329761744/Zu1HpXwOeObjG8qiV4YCcQ/dbqq0oppGQaKg5.ini)

thanks , a lot.

TheShadowRunner
11th September 2011, 22:59
Bug: when LAVVideo.ax 0.35 is registered, trying to add the filter (Graph > Insert Filters) in Graphedit build 090924 kills Graphedit, the process simply vanishes!

roytam1
11th September 2011, 23:44
Bug: when LAVVideo.ax 0.35 is registered, trying to add the filter (Graph > Insert Filters) in Graphedit build 090924 kills Graphedit, the process simply vanishes!

Use older GraphEdit from DirectX 9 SDK or GraphStudio instead.

mindbomb
11th September 2011, 23:57
lav splitter gives a black screen with the mkv vc-1i cheese slice test when using wmvideo decoder dmo, but it suceeds with cyberlink video decoder. ( http://www.avsforum.com/avs-vb/showpost.php?p=16956445&postcount=41 )

also, this has nothing to do with lav video, but wmvideo decoder dmo is multithreaded for progressive videos but single threaded for interlaced videos.

It seems like microsoft can't design a proper decoder for their own format :confused:

hi all, this video is stuttering when i am using lav audio, but when i use internal mph hc filters (dts/ac3) it is playing ok, both with internal or haali ps/ts/pva filter.
video .m2ts (http://minus.com/dGaNyEsGXFh6u.m2ts)

it played fine for me. you have to use lav splitter as well.

Portioli
12th September 2011, 00:04
http://s4.postimage.org/2xdm6zpk4/test_1_107fps.png (http://postimage.org/image/2xdm6zpk4/)http://s4.postimage.org/2xdnuj21w/test_1_110fps.png (http://postimage.org/image/2xdnuj21w/)

graphedit x32 - lav video 0.35 + DXVA-HD

Test 1 - 5passes ~107Fps
Test 2 - 5passes ~109Fps


graphedit x32 - lav video 0.35 (without moded LAVVideo.ax)
Test 1 - 5passes ~117Fps
Test 2 - 5passes ~119Fps


graphedit x64 - lav video 0.35 (without moded LAVVideo.ax)

Test 1 - 5passes ~118Fps
Test 2 - 5passes ~118Fps



LAVVideo.txt:

LAVVideo.ax(tid 8f0) 106470 : DXVAVideoProcessor::InitializeD3D9(): Initializing D3DEx Interfaces
LAVVideo.ax(tid 8f0) 106540 : -> Creating D3D9Ex Device
LAVVideo.ax(tid 8f0) 106710 : DXVAVideoProcessor::InitializeDXVA2(): Initializing DXVA-HD Interfaces
LAVVideo.ax(tid 8f0) 106710 : -> Creating DXVAHD_Device
LAVVideo.ax(tid 8f0) 106710 : -> DXVAHD_CreateDevice failed (hr: 80004002)
LAVVideo.ax(tid 8f0) 106718 : CTransformInputPin::CTransformInputPin
LAVVideo.ax(tid 8f0) 106718 : CTransformOutputPin::CTransformOutputPin
LAVVideo.ax(tid 8f0) 106718 : SetMediaType -- in
LAVVideo.ax(tid 8f0) 106718 : Shutting down ffmpeg...
LAVVideo.ax(tid 8f0) 106719 : Initializing ffmpeg for codec 28
LAVVideo.ax(tid 8f0) 106719 : -> File extension: .mkv
LAVVideo.ax(tid 8f0) 106720 : -> Processing extradata of 27 bytes
LAVVideo.ax(tid 8f0) 106723 : -> ffmpeg codec opened successfully (ret: 0)
LAVVideo.ax(tid 8f0) 106724 : Trying to connect Pins :
LAVVideo.ax(tid 8f0) 106724 : <XForm Out>
LAVVideo.ax(tid 8f0) 106724 : <Input>
LAVVideo.ax(tid 8f0) 106724 : ::GetMediaType(): position: 0
LAVVideo.ax(tid 8f0) 106724 : Trying media type:
LAVVideo.ax(tid 8f0) 106724 : major type: MEDIATYPE_Video
LAVVideo.ax(tid 8f0) 106724 : sub type : MEDIASUBTYPE_NV12
LAVVideo.ax(tid 8f0) 106724 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 106725 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 106725 : SetMediaType -- out
LAVVideo.ax(tid 8f0) 106725 : ::DecideBufferSize()
LAVVideo.ax(tid 8f0) 106725 : Connection succeeded
LAVVideo.ax(tid 8f0) 106725 : ::GetMediaType(): position: 0
LAVVideo.ax(tid 8f0) 106725 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 106725 : ::BreakConnect
LAVVideo.ax(tid 8f0) 106725 : Trying to connect Pins :
LAVVideo.ax(tid 8f0) 106726 : <XForm Out>
LAVVideo.ax(tid 8f0) 106726 : <Input>
LAVVideo.ax(tid 8f0) 106726 : Trying media type:
LAVVideo.ax(tid 8f0) 106726 : major type: MEDIATYPE_Video
LAVVideo.ax(tid 8f0) 106726 : sub type : MEDIASUBTYPE_NV12
LAVVideo.ax(tid 8f0) 106726 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 106726 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 106726 : SetMediaType -- out
LAVVideo.ax(tid 8f0) 106726 : ::DecideBufferSize()
LAVVideo.ax(tid 8f0) 106726 : Connection succeeded
LAVVideo.ax(tid 9d4) 106741 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 11d0) 106743 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid 11d0) 106845 : ::ReconnectOutput(): Performing reconnect
LAVVideo.ax(tid 11d0) 112157 : EndOfStream
LAVVideo.ax(tid 8f0) 112197 : ::BeginFlush
LAVVideo.ax(tid 8f0) 112198 : ::EndFlush
LAVVideo.ax(tid 9d4) 112198 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 112198 : ::BeginFlush
LAVVideo.ax(tid 8f0) 112198 : ::EndFlush
LAVVideo.ax(tid 1380) 112199 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 153c) 112201 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid 153c) 117282 : EndOfStream
LAVVideo.ax(tid 8f0) 117324 : ::BeginFlush
LAVVideo.ax(tid 8f0) 117324 : ::EndFlush
LAVVideo.ax(tid 1380) 117324 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 117324 : ::BeginFlush
LAVVideo.ax(tid 8f0) 117324 : ::EndFlush
LAVVideo.ax(tid 7a4) 117327 : ::NewSegment - 0 / 0
LAVVideo.ax(tid aa4) 117328 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid aa4) 122451 : EndOfStream
LAVVideo.ax(tid 8f0) 122494 : ::BeginFlush
LAVVideo.ax(tid 8f0) 122494 : ::EndFlush
LAVVideo.ax(tid 7a4) 122494 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 122494 : ::BeginFlush
LAVVideo.ax(tid 8f0) 122494 : ::EndFlush
LAVVideo.ax(tid 16d4) 122495 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 968) 122497 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid 968) 127548 : EndOfStream
LAVVideo.ax(tid 8f0) 127583 : ::BeginFlush
LAVVideo.ax(tid 8f0) 127583 : ::EndFlush
LAVVideo.ax(tid 16d4) 127583 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 127583 : ::BeginFlush
LAVVideo.ax(tid 8f0) 127583 : ::EndFlush
LAVVideo.ax(tid 12b4) 127584 : ::NewSegment - 0 / 0
LAVVideo.ax(tid d20) 127585 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid d20) 132598 : EndOfStream
LAVVideo.ax(tid 8f0) 132646 : ::BeginFlush
LAVVideo.ax(tid 8f0) 132646 : ::EndFlush
LAVVideo.ax(tid 12b4) 132646 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 132646 : ::BeginFlush
LAVVideo.ax(tid 8f0) 132646 : ::EndFlush
LAVVideo.ax(tid 8f0) 132647 : ::BreakConnect
LAVVideo.ax(tid 8f0) 132647 : Shutting down ffmpeg...
LAVVideo.ax(tid 8f0) 132659 : ::BreakConnect
LAVVideo.ax(tid 8f0) 132660 : Shutting down ffmpeg...
LAVVideo.ax(tid 8f0) 132660 : CTransformOutputPin::~CTransformOutputPin


LAVVideo_1732.txt:
LAVVideo.ax(tid 8f0) 2 : DXVAVideoProcessor::InitializeD3D9(): Initializing D3DEx Interfaces
LAVVideo.ax(tid 8f0) 72 : -> Creating D3D9Ex Device
LAVVideo.ax(tid 8f0) 247 : DXVAVideoProcessor::InitializeDXVA2(): Initializing DXVA-HD Interfaces
LAVVideo.ax(tid 8f0) 247 : -> Creating DXVAHD_Device
LAVVideo.ax(tid 8f0) 247 : -> DXVAHD_CreateDevice failed (hr: 80004002)
LAVVideo.ax(tid 8f0) 255 : CTransformInputPin::CTransformInputPin
LAVVideo.ax(tid 8f0) 255 : CTransformOutputPin::CTransformOutputPin
LAVVideo.ax(tid 8f0) 256 : SetMediaType -- in
LAVVideo.ax(tid 8f0) 256 : Shutting down ffmpeg...
LAVVideo.ax(tid 8f0) 256 : Initializing ffmpeg for codec 28
LAVVideo.ax(tid 8f0) 256 : -> File extension: .mkv
LAVVideo.ax(tid 8f0) 257 : -> Processing extradata of 27 bytes
LAVVideo.ax(tid 8f0) 261 : -> ffmpeg codec opened successfully (ret: 0)
LAVVideo.ax(tid 8f0) 263 : Trying to connect Pins :
LAVVideo.ax(tid 8f0) 263 : <XForm Out>
LAVVideo.ax(tid 8f0) 263 : <Input>
LAVVideo.ax(tid 8f0) 263 : ::GetMediaType(): position: 0
LAVVideo.ax(tid 8f0) 263 : Trying media type:
LAVVideo.ax(tid 8f0) 264 : major type: MEDIATYPE_Video
LAVVideo.ax(tid 8f0) 264 : sub type : MEDIASUBTYPE_NV12
LAVVideo.ax(tid 8f0) 264 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 264 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 264 : SetMediaType -- out
LAVVideo.ax(tid 8f0) 264 : ::DecideBufferSize()
LAVVideo.ax(tid 8f0) 264 : Connection succeeded
LAVVideo.ax(tid 8f0) 267 : ::GetMediaType(): position: 0
LAVVideo.ax(tid 8f0) 268 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 268 : ::BreakConnect
LAVVideo.ax(tid 8f0) 268 : Trying to connect Pins :
LAVVideo.ax(tid 8f0) 268 : <XForm Out>
LAVVideo.ax(tid 8f0) 268 : <Input>
LAVVideo.ax(tid 8f0) 268 : Trying media type:
LAVVideo.ax(tid 8f0) 268 : major type: MEDIATYPE_Video
LAVVideo.ax(tid 8f0) 268 : sub type : MEDIASUBTYPE_NV12
LAVVideo.ax(tid 8f0) 268 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 268 : ::CheckTransform()
LAVVideo.ax(tid 8f0) 269 : SetMediaType -- out
LAVVideo.ax(tid 8f0) 269 : ::DecideBufferSize()
LAVVideo.ax(tid 8f0) 269 : Connection succeeded
LAVVideo.ax(tid 17c0) 286 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 11e4) 287 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid 11e4) 465 : ::ReconnectOutput(): Performing reconnect
LAVVideo.ax(tid 11e4) 5929 : EndOfStream
LAVVideo.ax(tid 8f0) 5967 : ::BeginFlush
LAVVideo.ax(tid 8f0) 5967 : ::EndFlush
LAVVideo.ax(tid 17c0) 5967 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 5967 : ::BeginFlush
LAVVideo.ax(tid 8f0) 5967 : ::EndFlush
LAVVideo.ax(tid de0) 5971 : ::NewSegment - 0 / 0
LAVVideo.ax(tid e6c) 5972 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid e6c) 11420 : EndOfStream
LAVVideo.ax(tid 8f0) 11467 : ::BeginFlush
LAVVideo.ax(tid 8f0) 11467 : ::EndFlush
LAVVideo.ax(tid de0) 11467 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 11467 : ::BeginFlush
LAVVideo.ax(tid 8f0) 11467 : ::EndFlush
LAVVideo.ax(tid 1704) 11468 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 1154) 11470 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid 1154) 16580 : EndOfStream
LAVVideo.ax(tid 8f0) 16623 : ::BeginFlush
LAVVideo.ax(tid 8f0) 16624 : ::EndFlush
LAVVideo.ax(tid 1704) 16624 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 16624 : ::BeginFlush
LAVVideo.ax(tid 8f0) 16624 : ::EndFlush
LAVVideo.ax(tid 1118) 16625 : ::NewSegment - 0 / 0
LAVVideo.ax(tid c54) 16627 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid c54) 21712 : EndOfStream
LAVVideo.ax(tid 8f0) 21742 : ::BeginFlush
LAVVideo.ax(tid 8f0) 21742 : ::EndFlush
LAVVideo.ax(tid 1118) 21742 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 21742 : ::BeginFlush
LAVVideo.ax(tid 8f0) 21743 : ::EndFlush
LAVVideo.ax(tid 12bc) 21744 : ::NewSegment - 0 / 0
LAVVideo.ax(tid d00) 21746 : h264RandomAccess::parseForRecoveryPoint(): Found IDR slice
LAVVideo.ax(tid d00) 26751 : EndOfStream
LAVVideo.ax(tid 8f0) 26788 : ::BeginFlush
LAVVideo.ax(tid 8f0) 26788 : ::EndFlush
LAVVideo.ax(tid 12bc) 26788 : ::NewSegment - 0 / 0
LAVVideo.ax(tid 8f0) 26788 : ::BeginFlush
LAVVideo.ax(tid 8f0) 26788 : ::EndFlush
LAVVideo.ax(tid 8f0) 26789 : ::BreakConnect
LAVVideo.ax(tid 8f0) 26789 : Shutting down ffmpeg...
LAVVideo.ax(tid 8f0) 26801 : ::BreakConnect
LAVVideo.ax(tid 8f0) 26802 : Shutting down ffmpeg...
LAVVideo.ax(tid 8f0) 26802 : CTransformOutputPin::~CTransformOutputPin


cpu: AMD Phenom ii x4 955 undervolting @ 1,25V
ram: 4GB@1600 6-8-6-24
GPU: 5770 1GB GDDR5 (stock)

TheShadowRunner
12th September 2011, 00:32
Use older GraphEdit from DirectX 9 SDK or GraphStudio instead.

Thank you, switching at last ;)

Midzuki
12th September 2011, 03:19
also, this has nothing to do with lav video, but wmvideo decoder dmo is multithreaded for progressive videos but single threaded for interlaced videos.

It seems like microsoft can't design a proper decoder for their own format :confused:

LOL :) :p :D

Windows Media Player replays all audio streams simultaneously. This is normal. WMP does not support AVI files, don't use it.

...

Also it's Microsoft's AVI splitter that limits the size of AVI 1.0 files to 2 GB instead of 4 GB by interpreting the size as a signed value where it should be unsigned...

xiulet
12th September 2011, 11:30
Originally Posted by xiulet
hi all, this video is stuttering when i am using lav audio, but when i use internal mph hc filters (dts/ac3) it is playing ok, both with internal or haali ps/ts/pva filter.
video .m2ts

mindbomb:
it played fine for me. you have to use lav splitter as well.

yes now not stuttering but i have to use mpeg/ps/ts/pva from mpc hc if not the video don't show with lav splitter one, i think this mpc hc filter is better(for my system) than haali and lav filters

lav filter don't have cdda and i have several problems with dts wav (cd audio and files), internal mpc hc dts filter is capable to play dts wav files, and foobar2000 and vlc are capable to play both cd/file dtswav sound.
I " practice " with lav filter but i will not be my main filter group , but yes the lav audio, it rocks!

thanks

nevcairiel
12th September 2011, 17:06
lav splitter gives a black screen with the mkv vc-1i cheese slice test when using wmvideo decoder dmo, but it suceeds with cyberlink video decoder. ( http://www.avsforum.com/avs-vb/showpost.php?p=16956445&postcount=41 )

Thats using some VC-1 feature that i haven't seen in any real file before. Its using field interlacing, all other interlaced VC-1 i know uses frame interlacing...

I'll see if i can improve the parser a bit to handle that better.

... And i did, it should work better in the next version.

Did you run the multithreading check only against that file? Maybe its because of the field mode that its not working so well. Field mode is never really used, neither in progressive nor in interlaced.

mindbomb
12th September 2011, 23:46
i tested with 2 other interlaced videos too, but it is possible those were also field interlaced.

http://www.mediafire.com/download.php?tzlnhdynnhq
http://rapidshare.com/files/363684180/sample.m2ts

also, on a completely different note, feature request - DTS Surround Sensation Headphone processing from Arcsoft TMT software (presumably DTSheadphone.dll), would it be possible to add to lav audio? im thinking it might not be too difficult since it already has the ability to use one arcsoft dll, but i have no idea.

Midzuki
13th September 2011, 00:07
Regarding the file "300-vc1-nodecode.m2ts", it seems to be a mixture of frame-interlacing, field-interlacing, and no-interlacing.

:confused: :confused: :confused:

EDIT:

It's Advanced 3 with both Frame Interlaced and Field Interlaced pictures. It plays fine in DGVC1DecNV. I haven't tried a DXVA player.

nevcairiel
13th September 2011, 11:08
also, on a completely different note, feature request - DTS Surround Sensation Headphone processing from Arcsoft TMT software (presumably DTSheadphone.dll), would it be possible to add to lav audio? im thinking it might not be too difficult since it already has the ability to use one arcsoft dll, but i have no idea.

Not going to happen.

Regarding the file "300-vc1-nodecode.m2ts", it seems to be a mixture of frame-interlacing, field-interlacing, and no-interlacing.


I have that clip somewhere, i should throw it at the MS decoder, see if it works now. :)

nevcairiel
13th September 2011, 11:13
In other news, i started separating the avcodec decoder from the LAV Video "core", paving the way for implementing distinctly different decoder implementations in LAV Video.

I'm not sure which decoder i'll start with, but there are a few on the list that i could embed into LAV Video eventually:
- WMV DMO (like ffdshows wmv9)
- CUVID
- DXVA2
- Intel Media SDK (not sure it offers any advantage over DXVA2, afaik its just a wrapper around the pure DXVA2 functions)

hoborg
13th September 2011, 11:15
I am voting for DXVA2 :)

nevcairiel
13th September 2011, 11:19
I should really get my hands on some ATI card so that i can much easier test different ways to deal with DXVA2 on ATI, rathern then stabbing in the dark. :)
Too bad even my work PC has a NVIDIA (a pretty old Quadro, but still!)

I'm looking for a new notebook anyway, maybe i should try to get one with a ati in it.

hoborg
13th September 2011, 11:24
I should really get my hands on some ATI card so that i can much easier test different ways to deal with DXVA2 on ATI, rathern then stabbing in the dark. :)
Too bad even my work PC has a NVIDIA (a pretty old Quadro, but still!)

I can send you my ATI 6450 when i upgrade my HTPC to AMD fusion A8-3800 :)

roytam1
13th September 2011, 11:32
@nevcairiel: I just want my FSV1 patch be applied, as MPC-HC's FLV splitter can now able to make a FSV1 output pin now. (most FSV1 videos are produced by vnc2flv)
http://code.google.com/p/lavfilters/issues/detail?id=89

nevcairiel
13th September 2011, 12:25
I'll apply it later

Does LAV Splitter not manage to split it?

roytam1
13th September 2011, 12:57
I'll apply it later

Does LAV Splitter not manage to split it?

Yeah it splits. But it refuse to connect if there has no FSV1 decoder available.

Screenshot (I change nothing on spiltter side):
http://i.imgur.com/efvAO.png

Sven75
13th September 2011, 13:43
Hi Nev,

This one plays fine with ffplay.exe (and crashes with ffdShow), but is not yet recognized by LAV VD:

MS_RLE (http://www.mediafire.com/?c4y5wyow7n233y7)

Thanks!

roytam1
13th September 2011, 13:57
Hi Nev,

This one plays fine with ffplay.exe (and crashes with ffdShow), but is not yet recognized by LAV VD:

MS_RLE (http://www.mediafire.com/?c4y5wyow7n233y7)

Thanks!

IMHO you should report this issue in ffdshow thread too.
http://forum.doom9.org/showthread.php?t=120465

dbone1026
13th September 2011, 13:59
In other news, i started separating the avcodec decoder from the LAV Video "core", paving the way for implementing distinctly different decoder implementations in LAV Video.

I'm not sure which decoder i'll start with, but there are a few on the list that i could embed into LAV Video eventually:
- WMV DMO (like ffdshows wmv9)
- CUVID
- DXVA2
- Intel Media SDK (not sure it offers any advantage over DXVA2, afaik its just a wrapper around the pure DXVA2 functions)

Wouldn't mind seeing support for the Intel Media SDK. Currently the FFDShow Video Decoder / MPC Internal Video Decoder is unusable with an Intel GPU

nevcairiel
13th September 2011, 14:15
Wouldn't mind seeing support for the Intel Media SDK. Currently the FFDShow Video Decoder / MPC Internal Video Decoder is unusable with an Intel GPU

My DXVA2 would also support the Intel GPU, so the question remains what the MSDK offers.

dbone1026
13th September 2011, 14:24
My DXVA2 would also support the Intel GPU, so the question remains what the MSDK offers.

Good point, not sure what the MSDK offers above DXVA2

roytam1
13th September 2011, 14:28
Good point, not sure what the MSDK offers above DXVA2

IMHO the problem is that Intel doesn't follow the DXVA2 rules, period.

dbone1026
13th September 2011, 14:32
IMHO the problem is that Intel doesn't follow the DXVA2 rules, period.

Which is a shame because it keeps me away from intel GPUs (even using the Arcsoft Video decoder to get DXVA in VC-1 I have gotten some instabilities)

nevcairiel
13th September 2011, 14:37
As far as i understand, they follow the spec, however they use parts of the spec that NVIDIA/ATI don't use. Specifically, there is two ways to send H264 slices to the GPU, a quick and easy way, which lets the GPU to all the "hard" work, and a complicated way which makes it easier on the GPU, but harder on the software. NVIDIA/ATI support the "Short" variant, while Intel only supports the "Long".

Anyhow, if its too complicated to implement this, the MSDK is always there - but of course its another decoder adapter to implement.

Sven75
13th September 2011, 14:40
And another one...

According to the author this plays too fast with LAV VD. Graphstudio shows a length of 36 seconds, but the clip ends after 14. MPC with internal filters shows 36 seconds as well and plays it for 36 seconds (same number of frames, just slower).

MPEG with speed/length problem (http://www.mediafire.com/?r6grr6lrit38dzp)

Maybe the file is just broken, but in case there is something to fix (and learn)...

clsid
13th September 2011, 14:45
Any chance of a DXVA1 implementation as well? I would like to see the LAV decoders replace the buggy and outdated internal decoders of MPC. LAV is already vastly superior. The only thing missing is DXVA.

Replacing the internal decoders would also have the added benefit of speeding up integration of some of the video renderer fixes. Those are currently on hold because of decoder bugs/limitations.

mindbomb
13th September 2011, 14:48
interlaced vc-1 dxva would only be available with the intel one, right?

nevcairiel
13th September 2011, 14:56
Any chance of a DXVA1 implementation as well?

No.
I don't have XP to develop it, and i honestly don't care anymore.

Even my work PC was upgraded to Win 7 just last week, and big companies are the last to switch. :p

interlaced vc-1 dxva would only be available with the intel one, right?
No, adding the required VC-1 interlaced header parsing to get interlaced DXVA to work would probably be possible.

clsid
13th September 2011, 14:58
The MPC/ffdshow DXVA decoders are hacked into libavcodec, which doesn't support interlaced VC-1. I assume nevcairiel will make a proper implementation. So the question is does the MS DXVA decoder support VC-1 interlaced?

nevcairiel
13th September 2011, 15:13
ffmpeg supports DXVA2 decoding by itself now, no hacking required. All thats needed is adding header-parsing for interlaced frames/fields, so that the correct information can be passed to the DXVA functions.

The MS decoder of course supports interlaced VC-1, however you cannot use DXVA outside of WMP.

Thunderbolt8
13th September 2011, 15:19
is it^^ the same for DXVA2?

is it not possible to make the player of your choice pretending to be WMP so that the MS decoder would work? maybe some small integration of a player recognition part would work?

Xaurus
13th September 2011, 16:59
nev,

I can send you my ATI 6450 when i upgrade my HTPC to AMD fusion A8-3800 :)
I have a 5770 that I am not using since replacing it with my 570 GTX. I could donate it if you are interested.

nevcairiel
13th September 2011, 17:08
Thanks, but my main problem is getting that into a PC. I don't think they like living alongside a NVIDIA card in the same system.

Now that would be weird. I have 3 displays connected anyway, right now my main screen on the NVIDIA, and two on the Intel IGP (only 1 on the NVIDIA because connecting 2 with different resolutions causes it to get stuck in 3D performance mode)
But having 1 on the ATI, one on the Intel and one on the NVIDIA would probably just break my system. :D

Anyhow, a 6450 is really cheap, its not like i couldn't afford it or don't want to spend it, its just i don't know how to setup a working dev environment without setting up a whole new system for it (i have the components, just don't feel like running a second dev system)
If i work on it some day, i might just get one and see if my system really breaks.

HeadlessCow
13th September 2011, 17:50
I run my PC with an ATI card as the main display and an nVidia card (with no monitor attached) for CUDA stuff. Doesn't give me any problems.

pankov
13th September 2011, 21:37
Guys,
today I tried to bistream some DTS in WAV and sadly it didn't work. It either crashed the player (tested with Zoom Player, MPC-HC and Graph Studio) or resulted in some strange noise clicks in the speakers connected to the receiver (Integra DTR-40.3).
Strangely it worked a few times but only if I start the playback without bitstreaming and enable it afterwards in LAV Audio's config.
Is this problem happening only to me or there is some kind of general limitation? If it's not possible to make it work is it at least possible to make it not crash the player?
I have absolutely no problems with such files if I decode the stream with LAV Audio and then send it as multichannel PCM over the HDMI output of my video card.

Anybody?

SEt
13th September 2011, 23:11
LAVVideo.cpp :
// No Stride Request? We're ok with that, too!
No, not really. Guess what will happen here:
pBIH->biWidth = size / pBIH->biHeight * 8 / pBIH->biBitCount;
with negative height for RGB32? We'll get nice negative biWidth !

mkanet
14th September 2011, 01:19
Hi Nevcairiel. You were so kind to help me in with looking for a good single-slot Nvidia based card for an HTPC on AVS Forum. I really appreciate your help.

One of the biggest problems I have; and, the reason why I'm looking for a new Nvidia card is VC1 hardware acceleration. I could never get perfectly fluid, smooth frame rate with VC1 1080p/720p video (like I can with H.264 decoding).

I know this might be a ridiculous thing to ask, but have you considered making a universal "HD" video decoder that can handle both VC1 and H.264? Or, possibly just a standalone VC1 decoder? Maybe you might be able to handle VC1 better than other decoders.

I dont know if you know anything about Netflix Silverlight HD streaming; but I have a strong suspicion it uses the Windows DMO decoder as well; since video playback isn't smooth for it either. There are a lot of people who have this problem as well. If you were to make a VC1 decoder, is there any chance it could take the place of the decoder Netflix uses? I know that would make a lot of people happy.

Anyway, thank you for all your hard work.

-Michael

Andy o
14th September 2011, 02:30
Isn't LAV CUVID what you're looking for?

NF has never been smooth on any of my PCs, I don't think it's the decoding, progressive VC-1 decoding is trivial in most modern PCs. It's just a crap implementation. Not even on the PS3 it's perfectly smooth, but it's close on closed systems like it and for instance, iOS.

mkanet
14th September 2011, 03:11
Oh wow, I didnt know that LAV CUVID handles VC1. I never could get LAV CUVID to work on my PC. I'll try it again when I install a clean OS; and, hopefully with a display card that does full VC1 hardware decoding and newer CUDA support. Thanks!

Isn't LAV CUVID what you're looking for?

NF has never been smooth on any of my PCs, I don't think it's the decoding, progressive VC-1 decoding is trivial in most modern PCs. It's just a crap implementation. Not even on the PS3 it's perfectly smooth, but it's close on closed systems like it and for instance, iOS.

nevcairiel
14th September 2011, 07:31
with negative height for RGB32? We'll get nice negative biWidth !

Stupid RGB with its negative height. I'll apply a abs() around it, thanks for noticing.
Luckily, renderes always handle this properly and send a stride request, it would only fail for post-processing filters, i guess.

betaking
14th September 2011, 07:42
ffmpeg supports DXVA2 decoding by itself now, no hacking required. All thats needed is adding header-parsing for interlaced frames/fields, so that the correct information can be passed to the DXVA functions.

The MS decoder of course supports interlaced VC-1, however you cannot use DXVA outside of WMP.

in vista!
chanage [HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA"=dword:00000000
to
[HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA"=dword:00000001
in windows7
[HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA1"=dword:00000000
to
[HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA1"=dword:00000001
other directshow player can use WMVDECOD.DLL(DXVA and interlaced) decoder VC-1!

Chillgurke
14th September 2011, 08:31
Hi Nev,

seems like that i have a small problem with LAV Audio. Yesterday i watched SKY HD Sport. So it should be Dolby Digital. During the football game i have a constant loudness output level. During the halftime they showed some advertising. Then the loudness output level was also constant. But after they switched back to the game the loudness output level was really quietly. After stopping Timeshifting and tuning in the channel again gave the same output as before.

Im using MediaPortal with your latest splitter / Audio and LAV CUVID. And my AMP is only connected via analoge cabel.

I only can imagine, that during the advertisment they changed the Audio-Signal. Maybe from Dolby Digtal to something else.

Are there any known drawbacks to you Splitter or Audio which could cause this problem ?

CruNcher
14th September 2011, 10:26
@nev
could you take a look @ this and why it fails on EVR custom with Lav Splitter (evil tree.ts) :(
http://forum.doom9.org/showthread.php?p=1526099#post1526099

it works perfectly now (perfect telecined 23.97 without manual correction) with MPC-HC splitter + ffdshows-quicksync (send interlaced flags both on auto) and every other Interlaced stream gets properly double framerate deinterlaced, but with lav splitter it fails :(

Hmm could this have something todo with the fact that the Internal splitter is not going over File Source Async ?

Thats it it also fails with MPC-HC Splitter not as source running over File Source Async :)

File Source Async though fails only with this (wrong) stream it seems the others work

Andy o
14th September 2011, 11:46
Nev, is there a particular reason wma pro audio is being output in FP32? This makes ReClock's WASAPI mode not work with HDMI cards. Other lossy formats like DTS are apparently output at 24-bit.

nevcairiel
14th September 2011, 12:00
Nev, is there a particular reason wma pro audio is being output in FP32? This makes ReClock's WASAPI mode not work with HDMI cards. Other lossy formats like DTS are apparently output at 24-bit.

ffmpegs decoder outputs alot of lossy formats as FP32, because thats the native format of the decoder. This includes AAC, AC3, MP1/2/3, DTS and Vorbis, and maybe some others.

DTS is only output as 24-bit if you're using the ArcSoft decoder.

I also have no issues with ReClock WASAPI over HDMI with FP32 audio. Make sure its set to always output 24-padded-to-32

Andy o
14th September 2011, 12:10
Yeah, it's set like that, I double checked cause I thought it could be that too. Maybe some ReClock registry setting got stuck.

nevcairiel
14th September 2011, 12:34
WMA Pro may be another issue though. the ffmpeg decoder does some odd things, and i've had some issues before - especially if its low sample rates like 22050 or so.
I disabled the WMA support on my HTPC, using the MS decoders.

Andy o
14th September 2011, 12:35
It wasn't that, could you see if you can play this file in exclusive mode with LAV audio? Originally it was a wmv container, I used asfbin to cut it.

http://www.multiupload.com/EJXVC1ZWUQ

EDIT: I meant it wasn't ReClock's settings, apparently. It's probably weird stuff like you say. The MS decoder is working well, but can it do multichannel audio? I recall that there was some trick one had to do with graphstudio. If you notice the file above, it's supposed to be 5.1 but plays only two channels. Maybe it's just a super crappy encode.

Helios61
14th September 2011, 13:19
in vista!
chanage [HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA"=dword:00000000
to
[HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA"=dword:00000001
in windows7
[HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA1"=dword:00000000
to
[HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]
"DXVA1"=dword:00000001
other directshow player can use WMVDECOD.DLL(DXVA and interlaced) decoder VC-1!

Hi betaking!

Thanks for the hint, but here in WIN7/32 i can't find [HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo]


Best regards

Helios

nevcairiel
14th September 2011, 13:25
From the MSDN directly:

Note If the \\HKEY_CURRENT_USER\Software\Microsoft\Scrunch registry key does not exist on your computer, you can create it manually.

Note When running an encoder application in WOW64 mode on 64-bit Windows operating systems, the registry settings will need to be stored in the 32-bit equivalent node \\HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Scrunch.

However, i had no luck with the DXVA setting.

CruNcher
14th September 2011, 14:01
From the MSDN directly:


However, i had no luck with the DXVA setting.

DXVA will not be accepted for certain bitstreams such as WMVA inside .wmv
the best results in multipurpose playback so far i had with Potplayers DXVA Framework and Arcsofts Decoder (on different hardware now) both try to play everything with DXVA (WMVA,WMV3, VC-1) except WMV1,2 there you have to fallback to Software Libavcodec or Microsoft :)
Some WMV3 bitstreams also don't work @ all and fail on Hardware though completely, even some very old ones released far far ago by Microsoft (2002) ;)

Though even Lav Video fails with them only Microsofts Decoder decodes them 100% correct

mrcorbo
15th September 2011, 00:25
It wasn't that, could you see if you can play this file in exclusive mode with LAV audio? Originally it was a wmv container, I used asfbin to cut it.

http://www.multiupload.com/EJXVC1ZWUQ

EDIT: I meant it wasn't ReClock's settings, apparently. It's probably weird stuff like you say. The MS decoder is working well, but can it do multichannel audio? I recall that there was some trick one had to do with graphstudio. If you notice the file above, it's supposed to be 5.1 but plays only two channels. Maybe it's just a super crappy encode.

FWIW, that file plays fine in WASAPI exclusive mode w/ LAV audio here. ReClock shows 48000hz, 6 channels, PCM IEEE Float for audio input.

Andy o
15th September 2011, 01:28
On an HDMI device? If not, which device?

mrcorbo
15th September 2011, 01:42
On an HDMI device? If not, which device?

Yes. Radeon HD 6970.

Andy o
15th September 2011, 01:47
That's what ReClock is outputting though, right (what it indicates as "audio stream")? Not input. That's weird cause the AMD driver also isn't supposed to accept 32fp, you can confirm this by outputting 32fp manually with ReClock, you'll get an error message. I think there's something strange going on, cause when I played that file outputting 24-padded-to-32, I also got PCM IEEE as "audio stream" and no sound, but also no error message. The MS decoder works fine though.

mrcorbo
15th September 2011, 02:36
That's what ReClock is outputting though, right (what it indicates as "audio stream")? Not input. That's weird cause the AMD driver also isn't supposed to accept 32fp, you can confirm this by outputting 32fp manually with ReClock, you'll get an error message. I think there's something strange going on, cause when I played that file outputting 24-padded-to-32, I also got PCM IEEE as "audio stream" and no sound, but also no error message. The MS decoder works fine though.

No, that's not what it's outputting. That's the input. Try different sources and check for yourself. Just to be sure, I added the ffdshow audio processor to the playback chain and checked different output formats in the filter while playing that file. 16, 24, 32i and 32fp all worked fine and the audio stream info changed as the output coming from the ffdshow audio processor changed.

Andy o
15th September 2011, 02:57
Right, I got confused. Don't know what's happening then, maybe with NV it just doesn't work.

nevcairiel
15th September 2011, 06:34
I think its related to the silent stream bug. If the buffer isnt full enough,the hdmi connection might be lost. And something odd is going on with the output buffering with the wma decoder. It outputs odd sample sizes.

bur
15th September 2011, 08:45
I was trying LAV audio and compared the output of a 6 channel ac3 to ffdshow. I have 2.0 speaker configuration with onboard 24bit soundchip (RealTek ALC662) and Win 7.

LAV:
Channels: 6
nBlockalign: 24
AvgBytesPerSec: 115200
Frequency: 1.0

ffdshow
Channels: 2
nBlockalign: 6
AvgBytesPerSec: 288000
Frequency: 4.0

Both at 48kHz and using Extensible Wave Format.

Is there any way to make LAV output the audio with 2 channels? Does it even matter?

And what is the cause and result of the other discrepancies? I couldn't find an explanation for Frequency, but noticed that in both cases Frequency * nBlockAlign = 24. Is there any meaning to that?

I also saw that both output as 32bit FP. I found a thread here saying INT would be the better choice. Is that so and then why are both not using it? And is the 32bit output in my case any use (maybe during processing) because I guess DirectSound will cut it down to 24bit for output anyway.

Pix
15th September 2011, 09:56
Is there any way to make LAV output the audio with 2 channels? Does it even matter?

I've got the same problem. Yes it matters. If you try to output a 6ch audio to 2ch setup the sounds are just too quiet.
I've tried using different audio decoders and when they output 6ch to 2ch setup --> they output 2 channels. The sound is louder and easier to hear(at least for me).

nevcairiel
15th September 2011, 10:00
If you're on Windows 7, the default DirectSound mixer will do a pretty good job at downmixing your audio to your actual number of channels (assuming you told Windows that you only have 2 channels). On WinXP, the mixer is rather bad, and this will not give you any useful result.

Being able to down-mix with LAV Audio is a planned feature, however the priority isn't all that high.

Pix
15th September 2011, 10:13
Yes. I'm on Win7. I did the Control Panel --> Sound --> 2ch setup. But I just always see the 6ch output but it seems it should be like that, right?

So, I should just use the System Default audio renderer(with LAV Audio decoder)?

Because, voice channels are sometimes hard to hear and the environment/music volume is too high most of the time.

I think I've watched Inception and the soundtrack, which plays through the entire movie, got so irritating I couldn't finish the movie without fixing the problem. I couldn't hear the things they were saying.

hoborg
15th September 2011, 10:20
I have the same problem. If i use old analog stereo speakers, sound is downmixed by WinXP muxer correctly to stereo, but if i use HDMI connection to my TV, some channels are nearly muted, make it useless.

bur
15th September 2011, 10:27
Being able to down-mix with LAV Audio is a planned feature, however the priority isn't all that high. Ok thanks. And about the other settings like ByteAlign is there any reason they differ?

BeNooL
15th September 2011, 10:44
I run my PC with an ATI card as the main display and an nVidia card (with no monitor attached) for CUDA stuff. Doesn't give me any problems.

Same here. Windows 7 handles that real easy.

nevcairiel
15th September 2011, 10:48
Ok thanks. And about the other settings like ByteAlign is there any reason they differ?

Different number of speakers give different alignment.

Bits per Sample * Channels / 8 = Align.

You really shouldn't worry about that, its all working as it should.

bur
15th September 2011, 14:54
You really shouldn't worry about that, its all working as it should. I'm not worrying just curious. So the alignment says after how many bytes the next samples starts. Good to know. ;)

Rectal Prolapse
15th September 2011, 16:25
Hi - how does the LAV Filters handle subtitles in m2ts? Does it render them? If not, who does it connect to? I am seeing some odd behavior where it appears to render incorrectly use LAV Splitter compared to internal and I'm trying to figure out the problem.

I am using a 2 month old MPC-HC with only LAV Splitter, LAV Audio, and LAV CUVID installed. This could be an MPC-HC internal subtitle renderer bug that just behaves differently when connected to LAV Splitter - but probably more noticeable with LAV Splitter than internal (ie. buffering is different).

Rectal Prolapse
15th September 2011, 16:34
Ok I did some googling around and it appears to be an intermittent bug that won't be fixed by the main mpc-hc devs. My guess is it is 100x worse using LAV Splitter. What renderer do you recommend that isn't fubared like the internal one?

Reference: http://sourceforge.net/apps/trac/mpc-hc/ticket/48

nevcairiel
15th September 2011, 16:51
You can try ffdshow, but i'm not sure its really that much better of a sub renderer...

Andy o
15th September 2011, 18:29
Same here. Windows 7 handles that real easy.

So, you can use the AMD display with AMD HDMI audio, and use a CUDA decoder like LAV CUVID, with its hardware deinterlacing?

nevcairiel
15th September 2011, 18:31
So, you can use the AMD display with AMD HDMI audio, and use a CUDA decoder like LAV CUVID, with its hardware deinterlacing?

You can, but you wont get the highest quality deinterlacing. For the best, you need D3D Interoperability, which is only available if a display is connected.

Andy o
15th September 2011, 19:13
I haven't found that I need true deinterlacing yet for the content I watch. I'm mainly using it for IVTC, and there should be no quality difference there, right?

nevcairiel
15th September 2011, 19:14
Who knows how the driver behaves.

Btw, if IVTC is really all you need, could as well do that through AVISynth as well, when you're loading it already for decimation anyway.

CruNcher
15th September 2011, 19:30
You can, but you wont get the highest quality deinterlacing. For the best, you need D3D Interoperability, which is only available if a display is connected.

And copy the framebuffer over to the other card ;)

mindbomb
15th September 2011, 20:40
Being able to down-mix with LAV Audio is a planned feature, however the priority isn't all that high.

just curious - when it is added, is the downmix processing going to happen in 64 float like it does in eac3to?

or in other words, is it going to be superior even to windows mixer and ffdshow?

e-t172
15th September 2011, 20:46
64-bit float processing for audio is way overkill (except, maybe, for some insanely complex filter combinations). 32-bit float is sufficient. There's not "superior" way of downmixing, just correct and incorrect ones.

Andy o
15th September 2011, 21:35
Who knows how the driver behaves.

Btw, if IVTC is really all you need, could as well do that through AVISynth as well, when you're loading it already for decimation anyway.

I just couldn't find anything that did it very well, even DScaler had glitches on DVD content.

Moti172
15th September 2011, 22:11
Hi

Since my HTPC is based on i5 core 2400 (Without "external" GPU), I must relay on software decoding (no madvr or DXVA for me...)
Does Lav-Video can improve the quality of HD-movies (x264), over ffdshow video decoder? If so, what are the recommended setting?

Thanks

Superb
15th September 2011, 23:03
Hi

Since my HTPC is based on i5 core 2400 (Without "external" GPU), I must relay on software decoding (no madvr or DXVA for me...)
Does Lav-Video can improve the quality of HD-movies (x264), over ffdshow video decoder? If so, what are the recommended setting?

ThanksH.264 decoding produces the exact same picture no matter which decoder you use. It's designed this way. You should see absolutely no difference, assuming the decoder is working properly (of course).

mindbomb
15th September 2011, 23:04
if you are not using madvr, you want to uncheck everything but rgb32, and check "use high quality format conversions"

so it will improve the quality of your movies if you configure it like that.

btw, have you tried madvr configured for bilinear scaling? it might work on your intel hd2000.

Moti172
16th September 2011, 02:32
I tried madvr bilinear scaling (the movie is 720p) + lav splitter and lav video, the GPU load is about 40% and the CPU load about 20%.
I guess it should be o.k.
Is it suppose to be better than evr (bicubic) + lav splitter and lav video?

Thanks a lot

namaiki
16th September 2011, 02:35
I tried madvr bilinear scaling (the movie is 720p) + lav splitter and lav video, the GPU load is about 40% and the CPU load about 20%.
I guess it should be o.k.
Is it suppose to be better than evr (bicubic) + lav splitter and lav video?

Thanks a lot
Do you get dropped frames while in full screen with madVR's default scaling settings?
(you can check the dropped frames counter by pressing Ctrl+J)

Moti172
16th September 2011, 02:43
Yes quite a lot and the the GPU load is 85% and above.

mindbomb
16th September 2011, 02:47
Is it suppose to be better than evr (bicubic) + lav splitter and lav video?


well, that is subjective, but imo, yes.

btw, you want to ignore what i said earlier about forcing rgb output, that only applies when you are not using madvr.

Moti172
16th September 2011, 02:57
Thanks

Rectal Prolapse
16th September 2011, 03:51
nev, I looked at the mpc-hc code and I can see where the errors are in the design of PGS decoding. I think it'll need an overhaul to support multiple regions as well as support for multiple palettes (CLUTs). This would mean that subtitles in different regions with their own palettes would be broken in MPC-HC.

So I think I will re-implement PGS decoding in MPC-HC to fix those issues.

ForceX
16th September 2011, 06:06
Do you get dropped frames while in full screen with madVR's default scaling settings?
(you can check the dropped frames counter by pressing Ctrl+J)
madVR's default luma scaling settings (lanczos) is absolute overkill and causes more problem for people than its worth without giving any significant benefits. It makes people with weaker GPUs (especially HTPC/laptop) get a bad experience due to constant frame drops, when they could run just fine if one of the lesser demanding scalers were used.

IMHO, default should really be set to one of the cubic scalers, or even bilinear, to ensure good performance out of the box for novices; and people who are knowledgeable enough and want better quality should be able to change to spline 4 taps or whatever as they see fit. Although madVR for a while was only for the techie videophiles, I can see it getting more and more into mainstream with the advent of Hi10P.

nevcairiel
16th September 2011, 06:35
madVR is no renderer for people that want just a drop-in replacement for EVR. It will need configuration.
I think madshi does plan some sort of install wizard, guiding people through the settings, but all in due time, i guess.

Also, Hi10p is only for videophiles. The average user is also quite happy with dithered 8-bit, because he won't see a difference. :)

roytam1
16th September 2011, 08:23
ffmpeg added Apple ProRes decoder today. It will be nice to have it in LAV Video.

Sven75
16th September 2011, 10:59
One of these strange coincidences:

I am currently working on a congress and just received a video from a speaker with an "unsupported" QuickTime format on our LAV-equipped PCs... Guess which format it was? Apple ProRes

Well, I had to use our Mac to convert it...

mbordas
16th September 2011, 15:54
if you are not using madvr, you want to uncheck everything but rgb32, and check "use high quality format conversions"

If this is so, why would the default values not be set that way?

italospain
16th September 2011, 16:19
If this is so, why would the default values not be set that way?

because default means use it with madVR :D

mindbomb
16th September 2011, 17:53
also, increased resource usage with the software HQ rgb conversion.

clsid
16th September 2011, 19:00
FYI, MS RLE decoding not working with other splitters might be related to missing palette data.

nevcairiel
16th September 2011, 20:11
FYI, MS RLE decoding not working with other splitters might be related to missing palette data.

The media type is exactly the same, and contains a palette in both cases. Anyhow, i didnt really care to dig too deep.

4h4h270
16th September 2011, 21:09
There is really no difference between 0.33 and 0.34 except that it has much faster converters, so i consider that unlikely to be the case.

I'm so sorry,the problem is from reclock.
But only lav will drop frames.
reclock say video format is xxxfps, 1280x720i, unknown format 24 bits

roytam1
17th September 2011, 11:19
One of these strange coincidences:

I am currently working on a congress and just received a video from a speaker with an "unsupported" QuickTime format on our LAV-equipped PCs... Guess which format it was? Apple ProRes

Well, I had to use our Mac to convert it...

Have a try:
http://roy.orz.hm/lavf-w32-nightlies/lavf-my110917-prores-23a517b3.7z

Diff:
http://roy.orz.hm/lavf-w32-nightlies/lavf-my110917-prores-23a517b3.diff

Sven75
17th September 2011, 13:41
Thank you!

I did a quick check and it's working, but playback is very "sloooow" on my Core2Duo laptop. Converted it to H264 using LAV as decoder and the frame rate was ok again. So it seems that my CPU is simply not powerful enough for decoding in realtime (>60% overall CPU load, > 80% load on core 1).

Unfortunately, my test file is 1 gig in size, so uploading it and posting a link to it is rather difficult.

Mixer73
17th September 2011, 14:19
I did a quick check and it's working, but playback is very "sloooow" on my Core2Duo laptop. Converted it to H264 using LAV as decoder and the frame rate was ok again. So it seems that my CPU is simply not powerful enough for decoding in realtime (>60% overall CPU load, > 80% load on core 1).

ProRes files are very high bitrate and the format is very complex. I'd suspect the bitrate was more of a problem than the decompression itself though.

Sven75
17th September 2011, 14:53
I will test it on my Core i7 when I'm back in office. In any case, the Core i5 Apple Mac Mini I tried it on, played it fine under MacOS/QuickTime.

mindbomb
18th September 2011, 01:51
is there any way to make a sample without remuxing?

i have a file that doesn't play well with lav splitter, but when I make a sample, the sample plays fine.

it is frustrating.

sneaker_ger
18th September 2011, 02:03
Try a binary splitter like dgsplit (http://neuron2.net/dgsplit/).

roytam1
18th September 2011, 02:36
Got some users feedback:
RM/RMVB files plays perfectly...before seeking.
After seeking, blocky images last till next key frame.

nevcairiel
18th September 2011, 07:59
There is of course two choices. Either you see those corrupted frames, or you don't. If you don't, you have to actually wait until the next keyframe to see a picture at all.

Some changes i've planned for LAV Splitter will possibly improve seeking so that it will start closer to a keyframe.
Not sure when i'll get around to them, there is sooo much to do!

nevcairiel
18th September 2011, 08:23
Its test version time!

x86: http://files.1f0.de/lavf/LAVFilters-0.35-video-refactor.zip
x64: http://files.1f0.de/lavf/LAVFilters-0.35-x64-video-refactor.zip

There really aren't that many user-visible changes in these versions. However, i basically rewrote half of LAV Video to enable the integration of different decoders into it. There are no other decoders in there just yet, however i need to make sure the new code works perfectly. So far, it looks good. However, i'll never be able to find all issues myself - and thats where you guys come in. ;)

If you feel like testing a bit, give the LAV Video from that zip a quick whirl, and report if anything breaks that worked fine with 0.35. I *think* it should work OK, but you can never be sure with a big rewrite like this.

jmone
18th September 2011, 08:40
Any further thoughts on the dev work for Playlist Selection on Blu-rays? I've hit a few discs where the longest playlist (and is hence selected by default) is a "commentary" which is slightly longer than the feature due to the intro they add.
Thanks
Nathan

EDIT ** - I'm wrong, double checked and they seem to have the same streams....so the following is a poor idea!
One thing I noticed on these tracks is as they tend to have 2.0 tracks so they would be easy to recognise or potentially have logic that says take the longest track with HQ / Multi Ch Audio

nevcairiel
18th September 2011, 08:52
Auto-detection will never work 100% flawless.
I can of course offer a new interface to switch between titles, however this requires player support, and since no player really has shown any actual interest in this, i have just not done anything.

Sebastiii
18th September 2011, 09:45
Hi nev :)
We are a similar thing as plugin in Mediaportal but yes can be nice to have it directly from LAV Splitter :)
I have try to see how implement your great developer_info into MP but for sure Team is really interested for this, so i will try on my side first and other dev can help me too :)
Seb.

mzso
18th September 2011, 10:19
There is of course two choices. Either you see those corrupted frames, or you don't. If you don't, you have to actually wait until the next keyframe to see a picture at all.

Some changes i've planned for LAV Splitter will possibly improve seeking so that it will start closer to a keyframe.
Not sure when i'll get around to them, there is sooo much to do!
Or wait until the current frame is decoded from the last key frame?

nevcairiel
18th September 2011, 10:32
Or wait until the current frame is decoded from the last key frame?

After a seek, the previous keyframe is not guaranteed to be present. This is when the problem occurs. You cannot properly decode P or B frames artifact free without the preceding key-frame - so either you don't show those frames at all, or you show them with artifacts.

mzso
18th September 2011, 10:48
After a seek, the previous keyframe is not guaranteed to be present. This is when the problem occurs. You cannot properly decode P or B frames artifact free without the preceding key-frame - so either you don't show those frames at all, or you show them with artifacts.

Ok so potplayer and kmplayer achieves this somewhere outside of the splitter?

nevcairiel
18th September 2011, 10:53
This is about video decoding, not splitting.

I already said that the splitter is scheduled to be improved to try to find keyframes to seek to.
Maybe PotPlayer just seeks a few seconds before the wanted seek point, which would indeed result in more fluid playback, i guess.

VipZ
18th September 2011, 11:03
Ok so potplayer and kmplayer achieves this somewhere outside of the splitter?

Yep, I have started to use PotPlayer myself with LAV filters. I like the good looking GUI, but seeking and in general frame handling is also so much better than MPC with the same filters in use, not sure what is so different to achieve this.


@ nev, so far the refactored LAV Video is working without any issues.

jmone
18th September 2011, 11:03
Auto-detection will never work 100% flawless.
I can of course offer a new interface to switch between titles, however this requires player support, and since no player really has shown any actual interest in this, i have just not done anything.

J. River has shown support for title switching in MC16 in the past - I'll take their temp on this again.

nevcairiel
18th September 2011, 11:10
J. River has shown support for title switching in MC16 in the past - I'll take their temp on this again.

Last time it came up, i couldn't get an answer out of them.
Somehow i suspected they might save some things for MC17. ;)

jmone
18th September 2011, 11:13
Last time it came up, i couldn't get an answer out of them.
Somehow i suspected they might save some things for MC17. ;)

You could be right :) - lets see what we can stir up!

asasadad_1
18th September 2011, 12:07
(lav splitter + lav audio decoder) _0.35 doesn't work with this(http://samples.mplayerhq.hu/A-codecs/AAC/freetv_aac_latm.ts) sample.
(lav splitter + lav audio decoder) _0.34 works well.

Boltron
18th September 2011, 12:26
Tested refactor on a variety of mkvs with no problems. Haven't watched a complete movie yet from start to finish though.

x86 MPC-HC - LAV Splitter/Audio - madVR

FliCKeR
18th September 2011, 13:04
Watched Redline 720 Hi10p and no problems encountered so far.


PotPlayer x86 + LAV Splitter/Audio/Video x86 + EVR-CP - Windows 7 SP1 x86

pirlouy
18th September 2011, 14:01
What is the difference between "Lav Splitter" and "LAV splitter source" ? I have both when trying to select external filters.

FliCKeR
18th September 2011, 15:18
What is the difference between "Lav Splitter" and "LAV splitter source" ? I have both when trying to select external filters.

LAV Splitter Source opens and reads files, sending the data further to the next filter in chain.
In LAV Splitter's case, opening and reading is done by Microsoft's File Source (Async.) filter, LAV Splitter being only the parser filter.

roytam1
18th September 2011, 16:23
What is the difference between "Lav Splitter" and "LAV splitter source" ? I have both when trying to select external filters.

http://forum.doom9.org/showthread.php?p=1525277#post1525277

@nev maybe this one should be in FAQ section. ;-)

mzso
18th September 2011, 16:36
http://forum.doom9.org/showthread.php?p=1525277#post1525277

@nev maybe this one should be in FAQ section. ;-)

Also:
http://forum.doom9.org/showpost.php?p=1516760&postcount=4381
LAV Splitter relys on another DirectShow filter to read the file, typically the "File Source (Async)" filter. LAV Splitter Source reads the file directly.

Both have their different uses, and different players prefer different ways to use it.

pirlouy
18th September 2011, 22:30
Thanks for answers. I searched Google whereas I should have searched in this thread.

I don't really see the difference between a splitter and a source filter, but I'm not a developer. As a casual user I guess "LAV Splitter Source" is the thing to use.

Stephen R. Savage
18th September 2011, 22:45
nevcairiel, can you comment on how audio mixing works in LAV Audio Decoder? I noticed that several formats go through forced conversions, which is obviously not desired.

4.0 (3/1) --> 5.1 (BC --> BL/BR)
6.1 --> 6.1 (SL/SR --> BL/BR)

These samples can be obtained from http://samples.mplayerhq.hu/A-codecs/lossless/wavpack/test_suite/num_channels/

dead_screem
19th September 2011, 00:26
nevcairiel, can you comment on how audio mixing works in LAV Audio Decoder? I noticed that several formats go through forced conversions, which is obviously not desired.

4.0 (3/1) --> 5.1 (BC --> BL/BR)
6.1 --> 6.1 (SL/SR --> BL/BR)

These samples can be obtained from http://samples.mplayerhq.hu/A-codecs/lossless/wavpack/test_suite/num_channels/

Have you tried with the "Convert Output to Standard Channel Layouts" and "Expand 6.1 to 7.1" options disabled?

Stephen R. Savage
19th September 2011, 01:05
Have you tried with the "Convert Output to Standard Channel Layouts" and "Expand 6.1 to 7.1" options disabled?

Ah, yes, it was the "convert output to standard layouts" option. I feel dumb now.

It's funny how so many programs fail to interpret dwChannelMask. For example, ffdshow thinks BC and LFE in the 6.1 sample are BL and BR. iTunes/QuickTime thinks BC in the 3.1 sample is LFE. ffdshow thinks it's quadrophoic, etc.

Edit:
Well, might as well as another question. nevcairiel, is support for tags planned? It'd be neat to show Author/Track information for stuff like MP3, MP4, FLAC, OGG, etc. like in audio players.

jmone
19th September 2011, 01:42
Last time it came up, i couldn't get an answer out of them. ;)

You have a nibble from Matt!

Stephen R. Savage
19th September 2011, 02:44
Actually, it seems that LAVFilters specifies the surround channels in 5.1 audio as being rear and not side channels. Google tells me that the opposite should be the case. Does anybody have any comment on this and whether it matters for playback (I only have headphones)?

betaking
19th September 2011, 04:35
to nevcairiel is this a bug?
i use 0.35 stable is ok!
last svn
http://www.freeimagehosting.net/newuploads/f96ca.png
last stable
http://www.freeimagehosting.net/newuploads/b9ffd.png

nevcairiel
19th September 2011, 06:06
last svn
http://www.freeimagehosting.net/newuploads/f96ca.png

Looks like your ffmpeg is missing some decoders. :)

Actually, it seems that LAVFilters specifies the surround channels in 5.1 audio as being rear and not side channels. Google tells me that the opposite should be the case. Does anybody have any comment on this and whether it matters for playback (I only have headphones)?

So far no-one has complained. It seems to go out the right speakers.

betaking
19th September 2011, 06:13
Looks like your ffmpeg is missing some decoders. :)



So far no-one has complained. It seems to go out the right speakers.

i download last ffmpeg from you site! :confused:
i download other build form here
http://roy.orz.hm/lavf-w32-nightlies/
same like is!:eek:
and i download http://roy.orz.hm/lavf-w32-nightlies/lavf-my110917-prores-23a517b3.7z
no problem like last stable 0.35!
http://files.1f0.de/lavf/LAVFilters-0.35-video-refactor.zip
this build no problem!

Midzuki
19th September 2011, 06:40
Actually, it seems that LAVFilters specifies the surround channels in 5.1 audio as being rear and not side channels. Google tells me that the opposite should be the case.

Well, "everybody" :) accepted the so-called surround channels in a 5.1 setup as rear channels, until the day the 7.1 setups started to "officially exist" :p From that day on, some people have been trying to convince us all that the old rear channels had "always" :rolleyes: and "actually" :rolleyes: meant to be side channels... O_o

nevcairiel
19th September 2011, 06:57
If you play 5.1 content on a 7.1 system, the surround channels are infact supposed to come out the side channels, not the rears.
A 7.1 audio signal usually has much more audio in the side channels then in the rear channels, matching that concept.

Anyway, audio drivers typically are smart enough by themself these days to output any 5.1 to the side channels, or they actually expect them to be flagged as rear channels .. its been too long since i've tested it, i just know that the "default" 5.1 layout in DirectSound appears to be with rear channels, and thats whats working fine. :)

roytam1
19th September 2011, 07:46
i download last ffmpeg from you site! :confused:
i download other build form here
http://roy.orz.hm/lavf-w32-nightlies/
same like is!:eek:
and i download http://roy.orz.hm/lavf-w32-nightlies/lavf-my110917-prores-23a517b3.7z
no problem like last stable 0.35!
http://files.1f0.de/lavf/LAVFilters-0.35-video-refactor.zip
this build no problem!

I wonder if you DID REPLACE ALL files.

nevcairiel
19th September 2011, 07:55
I know whats causing that problem, and i'll fix it later. Its nothing serious, it will not impact playback, just the config box. :p

betaking
19th September 2011, 07:58
I wonder if you DID REPLACE ALL files.

YES,I REPLACE ALL files!

betaking
19th September 2011, 08:01
I know whats causing that problem, and i'll fix it later. Its nothing serious, it will not impact playback, just the config box. :p

Thanks!and i see cuvid will Integrated into lavfilters,can you give full Compile a complete description of what?

roytam1
19th September 2011, 08:13
YES,I REPLACE ALL files!

Please try redownload it, replace all files, and unregister and reregister the filters again.

betaking
19th September 2011, 08:40
Please try redownload it, replace all files, and unregister and reregister the filters again.

problem still here by LAVVideo.ax.LAVAudio.ax and LAVSplitter.ax no problem!

msoltyspl
19th September 2011, 10:08
These samples can be obtained from http://samples.mplayerhq.hu/A-codecs/lossless/wavpack/test_suite/num_channels/

On a related note, I once prepared 6.1 files for testing with proper channel masks/settings (a while ago, when I was submitting a bug to ffdshow-tryouts):

http://soltys.ziu.info/temp/61v2.7z (wav with proper channel mask)
http://soltys.ziu.info/temp/61v2.flac (--channel-map=none, required to properly rely on WAVEFORMATEXTENSIBLE)
http://soltys.ziu.info/temp/61v2-from-wav.ogg

Useful thing about those samples, is that they tell you which channel should go where as a part of the sample.

Inspector.Gadget
20th September 2011, 18:00
I notice when playing a DVD-VOB file (Directly, not as a title set or through a DVD structure) with the LAV Splitter and LAV Cuvid that closed captions (not regular DVD subs) are solid black; being text-based, it should be trivial to render them in a readable color by default instead. Do your LAV components have any influence (via decoding Line21 content within the CUVID decoder, etc.) over this or is this strictly internal to MPC-HC? Thanks.

nevcairiel
20th September 2011, 18:42
I do not render subtitles at all. MPC-HC is probably doing that.

VOB Subs are bitmap subs, btw. It probably has a wrong palette for rendering which causes them to go black.

glith
20th September 2011, 20:37
Any possibility to implement the delay option in LAV audio(Issue 63) before next release?

:thanks:

Inspector.Gadget
21st September 2011, 00:29
OK, thanks. I had selected the bitmap subs by mistake. By the way LAV Splitter works flawlessly with Line 21 Decoder 2 and Cyberlink MPEG-2 decoder on direct playback of VOBs.

DJ_Phatic
21st September 2011, 18:38
Yep, that did the trick. Thanks a lot.

I finally found a HD-DVD demo file (HD-DVD Demo 1080p VC-1 DDPlus 5.1 (http://www.techpowerup.com/downloads/530/.html)) which has the standard DD+ (E-AC3) stream (without any AC3 core).
LAV bitstreamed it to my receiver and DD+ light showed up for the first time.
The only combination to bitstream all supported audio is MPC-HC with LAV Splitter & Decoder.......guaranteed.
Thanks nevcairiel :thanks:

I just tried out the sample file as I couldn't get a remuxed HD-DVD in mkv container with a E-AC3 to playback any sound.

I get no sound with the test file either when I select the E-AC3 track. My receiver is an Onkyo 875 which supports TrueHD/DTS-MA so I presume it also supports DD+ bitstream.

xiulet
21st September 2011, 21:45
I just tried out the sample file as I couldn't get a remuxed HD-DVD in mkv container with a E-AC3 to playback any sound.

I get no sound with the test file either when I select the E-AC3 track. My receiver is an Onkyo 875 which supports TrueHD/DTS-MA so I presume it also supports DD+ bitstream.

In my system when switch to dd+, the video is going to stutter , my receptor is catching dd+ fine.

http://i.minus.com/i56kaN4CNkkHh.JPG

i am using mpc hc + lav audio and filter.

:thanks:

DJ_Phatic
22nd September 2011, 12:07
In my system when switch to dd+, the video is going to stutter , my receptor is catching dd+ fine.

I was using the Realtek driver which was the problem, using the ATI driver DD+ bitstreams though I also noticed some stuttering.

xiulet
22nd September 2011, 13:33
I was using the Realtek driver which was the problem, using the ATI driver DD+ bitstreams though I also noticed some stuttering.

i am using the realtek driver from his page i read that is better in general realtek ATI HDMI Audio Device (http://218.210.127.131/downloads/downloadsView.aspx?Langid=1&PNid=14&PFid=24&Level=4&Conn=3&DownTypeID=3&GetDown=false)

i think may be is a problem of the video or the filters.

thanks, ad1

nevcairiel
22nd September 2011, 19:09
A short preview for the next LAV Video version. I added a whole bunch of new options, stolen from LAV CUVID. :p

http://images.gammatester.com/pics/12387c66559ca94c4e88032f45859f57.png

Although i also added one new one, which was requested for LAV CUVID a while ago, finally got around to implement it here now. :)

mindbomb
22nd September 2011, 19:19
so, in the near future, you can get lav video to do the HQ rgb conversion with cuvid?

fantastic news for my 8600gt that can't use cuvid and madvr at the same time.

in an unrelated note, so if you try to play a 10 bit h264 video, hw decoding will automatically disable itself?

fastplayer
22nd September 2011, 19:24
Looks great! :)
Are you gonna remove the HQ-Format-Conversion checkbox? You've mentioned it a while ago.

nevcairiel
22nd September 2011, 19:40
so, in the near future, you can get lav video to do the HQ rgb conversion with cuvid?
Yes.

if you try to play a 10 bit h264 video, hw decoding will automatically disable itself?

Thats the plan, but not implemented yet. Its one of the things missing before a release.


Are you gonna remove the HQ-Format-Conversion checkbox? You've mentioned it a while ago.
I probably could, its mostly useless now, but no harm either way.

SamuriHL
22nd September 2011, 19:43
So this means the LAV CUVID code base is integrated now with LAV Video? Anything we should know about building it? :D I haven't done a build in a while but was planning on doing one tonight to get the latest code.

nevcairiel
22nd September 2011, 19:43
Anything we should know about building it?

You don't need the CUDA SDK anymore.

SamuriHL
22nd September 2011, 19:44
You don't need the CUDA SDK anymore.

Nifty. I'll try a build a bit later. Thanks!

nevcairiel
22nd September 2011, 19:46
Note that its not 100% complete yet.

Whats still to do for CUDA/CUVID:
- VC1 decoding will not result in proper timestamps
- Automatic software fallback on unsupported movies (10bit H264, 4:2:2 MPEG-2, etc)

I also axed MPEG4-ASP support for the time being. I don't think its really worth it, the software decoder will do it much better.

SamuriHL
22nd September 2011, 19:50
Well, I'd like to try it out in MC16 and test it before you release a version that's combined. I'd like to make sure they won't run into any problems since they currently use LAV CUVID in some cases by default.

nevcairiel
22nd September 2011, 19:50
LAV CUVID itself won't break of course, it just won't be updated much anymore.

SamuriHL
22nd September 2011, 19:52
Right, but, given how they consume the filters I just want to make sure nothing gets screwy in that configuration. Matt will want to remove LAV CUVID at some point once you do a full release. The question then becomes...does he default MC16 to LAV Video in all cases. I'd personally say yes but that's not my decision. :D I know on my machines that's what I've been using and have no problems.

nevcairiel
22nd September 2011, 19:54
They would probably require software deinterlacing before they can make the switch, or use ffdshow as a post-processor.
Well, they can decide how to handle it. I honestly don't care much. There will be a transition period until LAV Video can fully provide a full playback chain with YADIF, but i have to start somewhere, don't I. ;)

After cuvid is done, my next goal is either integrating the MS wmv9 software decoder (for vc-1 interlaced), or a Intel hardware decoder. Not sure yet which to tackle first.

VipZ
22nd September 2011, 20:02
Awesome work nev.

After cuvid is done, my next goal is either integrating the MS wmv9 software decoder (for vc-1 interlaced), or a Intel hardware decoder. Not sure yet which to tackle first.

I vote MS wmv9 ;)

SamuriHL
22nd September 2011, 20:03
I would vote for the MS decoder. :D That would be quite useful. And yea, I'll maybe start a thread over there to make them away that LAV CUVID code is being integrated into LAV Video and that they may want to start considering switching over to LAV Video for the default. Interlace stuff isn't that big a deal to handle. As you said, there are multiple ways to do it including just using MS decoder for VC1 interlaced content. They can figure that out. :)

madshi
22nd September 2011, 20:10
JFMI, what would be the benefit of integrating the MS VC-1 decoder over using the already existing MS DMO?

nevcairiel
22nd September 2011, 20:17
Alot of DirectShow players have issues disconnecting and re-creating the video decoder/renderer on the fly, so it would be beneficial if there is one good decoder for all needs, which can just switch decoders internally.
This is mostly aimed at future advanced Blu-ray support (title switching, full navigation, even menu support), where the video type can switch on the fly between titles, but nothing really relevant right now.

But alot of people keep asking for it as well, not sure what they want to get out of it, but i have fun doing it, so why not! :)
I guess it simplifies their filter setup somewhat.

There is also my idea of using hardware deinterlacing with software decoding, but i guess thats only half-valid, as you could as well just use a hardware decoder for VC-1i then.
Maybe i'll go with the Intel decoder first. I already saw a patch for VC-1i decoding with libavcodec. It produces some kind of image, but its still somewhat a WIP. But there is hope. :)

SamuriHL
22nd September 2011, 20:21
For MC16 it'd be useful because you could just tell it to use LAV Video for everything and it'll switch internally for whatever content you're playing.

SeeMoreDigital
22nd September 2011, 21:23
There is also my idea of using hardware deinterlacing with software decoding, but i guess thats only half-valid, as you could as well just use a hardware decoder for VC-1i then.

Can a similar idea be incorporated to add AVClossless decoding to your "LAV CUVID" decoder?


Cheers

CruNcher
22nd September 2011, 22:00
Can a similar idea be incorporated to add AVClossless decoding to your "LAV CUVID" decoder?


Cheers
Nope the best way (most efficient though also most complex way) is to dynamically jump between Hardware and Software Decoder cores currently but the different reaction on different renderer (and then you have the different performance, the logic of what is better for your Hardware what gives you the best experience for this Format Hardware Playback or Software (will this 60 fps stream playback fast enough in my setup on the Discreete DSP or will it fail and should i better use the Software Decoder), and the switching logic though in terms of hardware and Renderer limitations that is already good under control) with different input and different behavior for different parser makes this all a pain with dshow :( inlcuding the Deinterlacing things to keep in mind :( and then the Interface side without hurting quality in any scenario and there are a lot of Playback Scenarios (content wise).
Just a big complex mess if you aren't doing everything in context from the Player on and in those regards you are heavily dependent on what the Vendors are doing in their Drivers also which Renderer they support with their implementations and so on :(
And in this equation isn't included the differences between NT 5 and NT 6 behavior, just if you would say only 1 OS keeping complexity small as possible is hard over multiple OS it gets crazy especially if you want to support all 3 major Vendors currently Intel, Nvidia , AMD (their you need to know the limitations then of every of their solutions also to make these decisions efficiently).
So somehow it's understandable that Intel says NT 6 support only :P

The easiest way is forcing EVR (its supported by everyone it supports Shader and with Aero tearing is history but it's not efficient as EVR-CP nor MadVR and then you get into issues again, user demands and hardware issues tearing performance because of Aero not supported or to slow) :(

SeeMoreDigital
22nd September 2011, 22:18
Bummer!

CruNcher
22nd September 2011, 22:46
So my concept was you have a Player and inside it a small benchmark and analyze logic that tests @ first your system Performance and the Performance of the Vendor Hardware your system consists of in your configuration (VPx,UVD,Quicksync) and based on these individual System benchmarks (Vendor API,DXVA) you can do the decisions for the most popular formats and playback scenarios which for every Vendor are the same VC-1,Mpeg-2,H.264. Though obviously this is only a part of the whole "Smart Playback Decisions" thing.

Mustaffi
22nd September 2011, 22:53
when l play some H264 4:2:2 videos they are rare colors y random artifact all over....

screen:

http://img831.imageshack.us/img831/2449/422u.png

roytam1
22nd September 2011, 23:51
Awesome work nev.



I vote MS wmv9 ;)

As I own AMD GPU and VC1-i issue is fixing by libav guys, I vote for DXVA.

xiulet
23rd September 2011, 00:40
hi all my friends, from my ignorance, i have a question for you , what is the real possibility of make something like lav cuvid (or gpgpu stuff audio/video ) using opencl, today?

thanks, ad1

Mixer73
23rd September 2011, 05:33
hi all my friends, from my ignorance, i have a question for you , what is the real possibility of make something like lav cuvid (or gpgpu stuff audio/video ) using opencl, today?

Much, much less likely than AMD exposing their API for video decoding, which looks increasingly unlikely.

sneaker_ger
23rd September 2011, 05:53
Much, much less likely than AMD exposing their API for video decoding, which looks increasingly unlikely.

Didn't they already do the latter?
http://developer.amd.com/sdks/AMDAPPSDK/assets/OpenVideo_Decode_API.PDF

nevcairiel
23rd September 2011, 06:21
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing

betaking
23rd September 2011, 06:31
So my concept was you have a Player and inside it a small benchmark and analyze logic that tests @ first your system Performance and the Performance of the Vendor Hardware your system consists of in your configuration (VPx,UVD,Quicksync) and based on these individual System benchmarks (Vendor API,DXVA) you can do the decisions for the most popular formats and playback scenarios which for every Vendor are the same VC-1,Mpeg-2,H.264. Though obviously this is only a part of the whole "Smart Playback Decisions" thing.

I did set the codecpack process had brought a bag with hardware and system test functions, can automatically switch to the corresponding operating system and hardware decoders and splitters!:)

nevcairiel
23rd September 2011, 06:58
when l play some H264 4:2:2 videos they are rare colors y random artifact all over....

H264 4:2:2 is not yet supported.
Where do you get such content anyway?

As I own AMD GPU and VC1-i issue is fixing by libav guys, I vote for DXVA.

That was not a valid option in the poll.

ForceX
23rd September 2011, 14:11
I just found out I could use LAV CUVID with my CUDA 2.2 driver thanks to working CUDA acceleration in roytam's latest LAVFilters build. xD Last time I checked (months ago) it wouldn't work and I hadn't bothered checking the thread because I don't expect devs to extend backwards compatibility anymore. >.> Nev, you're awesome.

Stupid never updated laptop drivers...

mindbomb
23rd September 2011, 14:34
i vote for wmv9.

that affects more ppl i think, since it would be almost everyone who doesn't use lav cuvid atm.

nevcairiel
23rd September 2011, 14:35
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place. :)


I just found out I could use LAV CUVID with my CUDA 2.2 driver thanks to working CUDA acceleration in roytam's latest LAVFilters build. xD Last time I checked (months ago) it wouldn't work and I hadn't bothered checking the thread because I don't expect devs to extend backwards compatibility anymore. >.>

Thats actually just a side-effect of dynamically loading the functions i need. That way it doesn't depend on a specific dll anymore, it just works as long as the dll you have exports all the required functions. :)

xiulet
23rd September 2011, 14:51
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing

uff, opencl is going to slow , cuda implementation is so far from opencl :( . may be in near future but i don't know.

ad1

nevcairiel
23rd September 2011, 14:54
I wish people would finally understand this...

It has nothing to do with CUDA or OpenCL.
The video decoder is completely separate, the API to access it is called CUVID. It just piggy-backs on CUDA so NVIDIA didn't need to invent a completely new API.

The OpenCL Standard will NEVER include a video decoder!

AMDs API does something similar, they piggy-back on the OpenCL API to expose their decoder. But its not a OpenCL Decoder! Its a AMD proprietary decoder, it has nothing to do with the OpenCL Standard.
Only AMD is to blame for not offering a video decoder interface similar to NVIDIAs. It has nothing to do with OpenCL.

mindbomb
23rd September 2011, 15:05
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place. :)


so, we can use lav video's rgb conversion and, in the future, lav video's yadif with it.

nevcairiel
23rd September 2011, 15:07
Converting interlaced YUV to RGB is a bad idea, it won't deinterlace properly anymore then. :)

mindbomb
23rd September 2011, 15:16
i didn't know that. kind of a downer.

Thunderbolt8
23rd September 2011, 15:48
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place.can the MS decoder decode really everything? somtimes, certain BBC 1080i stuff is not decoded properly on my PC, there is no picture (not sure whether this is solely due to the MS decoder or combination of LAV splitter and MS decoder or win 7 preferred filter settings (even though the MS decoder is set to be preferred there))

nevcairiel
23rd September 2011, 15:52
Its the same decoder. Everythign comes down to the WMV9 DMO. The MS decoder is just a wrapper around the exact same DMO decoder that ffdshow uses and LAV Video would use.

It may have been a bug in LAV Splitter, i fixed some things recently with some samples.

Thunderbolt8
23rd September 2011, 16:06
but if its the same decoder, why would some people prefer one or the other decoder? are there any advantages or disadvantages of that wrapper?

nevcairiel
23rd September 2011, 16:07
Thats what i am asking. :p

The only reason i can come up with is the possiblity to use future software deinterlacing in LAV Video, followed by RGB conversion. But until deinterlacing is implemented, it won't do any good.

SamuriHL
23rd September 2011, 17:49
Sooooooo, work on deinterlacing first? :D

nevcairiel
23rd September 2011, 18:05
Using ffmpegs yadif should be done in a matter of a day or so, i bet. It seems so super easy!

Anyhow, i should focus on getting this release ready, or it'll never be done.

SamuriHL
23rd September 2011, 18:09
Well, if you add YADIF to LAV Video, then we can push for LAV Video to replace ffdshow in MC16. That'd make me very happy. It's being resisted right now because of the deinterlacing issue. (Right, jmone?? :D) That would really rock.

Xaurus
23rd September 2011, 18:26
Using ffmpegs yadif should be done in a matter of a day or so, i bet. It seems so super easy!

Anyhow, i should focus on getting this release ready, or it'll never be done.
I have not really understood how Avisynth works - is it possible to implement something like QTGMC? As far as I understand it's based on YADIF?

nevcairiel
23rd September 2011, 18:39
QTGMC is too slow for real-time processing, last i checked.
Its also only available through AviSynth. I have no concrete plans to do that, maybe one day.

VipZ
23rd September 2011, 19:52
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place. :)

Since I think I was one of the 1st to bring it up I guess I need to take the task :)

EVO, While the MS decoder works with this, it only does so within MPC and with FTC on, and with basic EVR. With say PotPlayer and maybe Zoom Player as well, FTC option doesn't exist so EVO playback isn't possible without switch filters. I couldn't get MadVR to work with this as has same issues as with FTC off.

WMV3, I think in general ffmpeg has some issues here and there with MS formats, I assume it would work in same way as ffdshow where while it uses MS DMO, it doesn't use the post processing rubbish so it gives correct output without the need to mess around with 5yr old apps or dig in registry.

Final one is just easier to control the filter environment with only having to deal with one decoder with unified output settings, this will be mostly useful for stream switching and where an extra filter such as ffdshow raw or VSFilter is also used.

Hope that was good enough ;)

jmone
23rd September 2011, 21:51
:angry:Well, if you add YADIF to LAV Video, then we can push for LAV Video to replace ffdshow in MC16. That'd make me very happy. It's being resisted right now because of the deinterlacing issue. (Right, jmone?? :D) That would really rock.

Yup! Correct on all counts, I don't see much benefit in pushing to replace FFDSHOW with LAVVIdeo if we need to then use FFDSHOW anyway to get SW Deinterlacing.

so....Nevcairial great news on YADIF integration and I hope is is a "easy" as you say!

Xaurus
23rd September 2011, 22:08
QTGMC is too slow for real-time processing, last i checked.
Its also only available through AviSynth. I have no concrete plans to do that, maybe one day.
Maybe this can help you change your mind? :D

http://forum.doom9.org/showpost.php?p=1516459&postcount=817

CruNcher
23rd September 2011, 22:32
Ehh yeah but what do you lose changing the preset and how does the Power Consumption vs Result in the end looks like compared to Hardware ?
This is much to basic without seeing some numbers and direct compare of the efficiency to say anything, just a hey look i can peg my cores and get a result without knowing how the difference to a full Hardware setup is seems just crazy.

SEt
23rd September 2011, 22:48
CUDA is not useless in video decoding - it's the best way to readback the frame from video memory. ^_^

As for YADIF - it's so ugly I hope no one would use it. And yes, QTGMC not as slow as you think. I can get realtime even with 1440x1080 @59.94 (with "Super Fast" preset - no YADIF inside) on my not-so-new hardware (i7-930).

mzso
23rd September 2011, 23:10
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing

Couldn't a deinterlacer run atop OpenCL?

xiulet
23rd September 2011, 23:23
I wish people would finally understand this...

It has nothing to do with CUDA or OpenCL.
The video decoder is completely separate, the API to access it is called CUVID. It just piggy-backs on CUDA so NVIDIA didn't need to invent a completely new API.

The OpenCL Standard will NEVER include a video decoder!

AMDs API does something similar, they piggy-back on the OpenCL API to expose their decoder. But its not a OpenCL Decoder! Its a AMD proprietary decoder, it has nothing to do with the OpenCL Standard.
Only AMD is to blame for not offering a video decoder interface similar to NVIDIAs. It has nothing to do with OpenCL.

ok, i understand :)

i read that ati provide an extension to opencl called OpenVideoDecode API (http://www.rage3d.com/board/showthread.php?t=33976085) that is similar to cuvid, but may be it's not enough mature right now.

:thanks: for your explanation

ad1

ForceX
24th September 2011, 00:43
The "memory not being released upon closing a video" bug is back again in roytam's latest build, and it happens with all the renderers. :/

pirlouy
24th September 2011, 01:25
The only reason i can come up with is the possiblity to use future software deinterlacing in LAV Video, followed by RGB conversion. But until deinterlacing is implemented, it won't do any good.
I should miss something but I don't get it.
In the past, you said the MS decoder did a good job in term of deinterlacing. So why people would use MS decoder then go back to LAV for deinterlacing ??

For me, I prefer ffmpeg to do the decoding, and if it's not possible with ffmpeg for now, I'd like to use (future) LAV Yadif deinterlacing (but I've never had a interlaced video).

Portioli
24th September 2011, 02:55
i am using lav video and ffdshow raw video filter for double frames [yadif] + MAdVR, with no problem,

i dont understand why some people are still complaining?

ForceX
24th September 2011, 03:32
I should miss something but I don't get it.
In the past, you said the MS decoder did a good job in term of deinterlacing. So why people would use MS decoder then go back to LAV for deinterlacing ??

For me, I prefer ffmpeg to do the decoding, and if it's not possible with ffmpeg for now, I'd like to use (future) LAV Yadif deinterlacing (but I've never had a interlaced video).
I think he said MS decoder works best for decoding interlaced VC-1 content, not deinterlacing. MS's decoder has a basic blend deinterlacer which is basically crap, and I think disabled by default. The Adaptive deinterlacer in GPUs is virtually the best you can get in terms of quality and speed.

nevcairiel
24th September 2011, 07:48
As for YADIF - it's so ugly I hope no one would use it. And yes, QTGMC not as slow as you think. I can get realtime even with 1440x1080 @59.94 (with "Super Fast" preset - no YADIF inside) on my not-so-new hardware (i7-930).

YADIF looks better then the typical other options offered by ffdshow for example (without going into AviSynth). Personally, i haven't seen a HD capable real-time algorithm that looks better, and still runs on a non-highend CPU. I still prefer the adaptive deinterlacing in the GPU, however. This is just a software fallback when thats not available.

Anyhow, i will not implement AviSynth support any time soon.
If someone provides a standalone implementation of such an algorithm without needing avisynth (preferably as a libavfilter plugin), i would be more open to evaluate the algorithm.

Besides that, QTGMC was designed for post-processing during encoding. Like many have said, its not meant for real-time playback. It may work on HD material on your 930 or my 2600k, but those are not typical HTPC CPUs. I want to provide a setup that works on a HTPC, if you want extreme processing, you're free to use ffdshow with a full AviSynth setup (or just watch through a AviSynth script to begin with)

In the past, you said the MS decoder did a good job in term of deinterlacing. So why people would use MS decoder then go back to LAV for deinterlacing ??

I did not say anything like that. The MS decoder doesn't typically deinterlace at all (you can make it to, but even then its fairly low quality). Its good for decoding, but thats it.

nevcairiel
24th September 2011, 13:35
Hi guys,

http://files.1f0.de/lavf/LAVFilters-0.35-cuvid.zip

This is my first "official" test version of LAV Video with integrated CUVID decoder.

If you dare to test it, please report any issues you find with it, especially things that work in LAV CUVID, but don't work anymore!

This version features H264, MPEG2 and VC1 CUVID decoding. MPEG4 ASP decoding is not available at this time because i don't think its really worth it.
It should automatically fallback to software decoding if you play H264 4:4:4 or 10bit material, as well as MPEG2 4:2:2

So as always, let me know about problems you find.

PS:
Note that VC-1 is still disabled by default, and if you want to use CUVID for it, you should enable it on the Formats tab. :)

jmone
24th September 2011, 14:15
Nevcairiel - good stuff, ran through my test files using CUVID and no issues at all (using MC16 HQ + Additional Filters). Is there a way of telling what decoder is being used (eg CUVID / libavcodec)?, also for me VC-1 was enabled by default.
Thanks
Nathan

nevcairiel
24th September 2011, 14:21
There is no indicator right now. I've been thinkink about how to show one.

SamuriHL
24th September 2011, 14:22
There is no indicator right now. I've been thinkink about how to show one.

OH OH I know I know! With the tray icon color! :D No? LOL!

Xaurus
24th September 2011, 14:35
There is no indicator right now. I've been thinkink about how to show one.
Color coded systray icon like CoreAVC?

Andy2222
24th September 2011, 14:48
Hi Nevcairiel,


i wonder if u could add a "file input buffer size" option for the source-splitter filter? I use FTPDrive to map a ftpserver directly as filesystem and play, stream directly from it. Higher input buffers helps to reduce streaming problems during playback and improves seeking behavior in this case. I used sizes beetwen 2-64MB under the haali splitter and would like to switch over to LAVFilters.


thx Andy

pirlouy
24th September 2011, 15:26
OH OH I know I know! With the tray icon color! :D No? LOL!
Maybe Nevcairiel does not like tray icons, but personally, I'd love if they were a tray icon for LAV splitter, another for LAV video and another for LAV Audio.

SamuriHL
24th September 2011, 15:40
Nev already added the icons for the tray icons. That's why I was saying that sarcastically. AFAIK, that's planned. I think he was referring to doing something in a shorter term. :)

mzso
24th September 2011, 15:53
Maybe Nevcairiel does not like tray icons, but personally, I'd love if they were a tray icon for LAV splitter, another for LAV video and another for LAV Audio.

I don't think cluttering the notification area is a particularly good idea. Also I don't pay attention to the notification area while dealing with the media player. I don't think there's a way to make it as convenient as it when its a separate filter. You just pressed a key to view what filter was loaded.

nevcairiel
24th September 2011, 15:56
I just want something so that you can actually find out if its working, like to check after configuration. I'll probably add a small thing on the properties page somewhere.
If you're using EVR-CP in MPC-HC, it'll actually show DXVA in the status bar when CUVID is active, as a small indicator. Doesn't seem to show with other renderers.

mzso
24th September 2011, 20:42
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing

Why is that? Interlaced content is not too common for me. With LAV CUVID the decoding to the gpu things got a lot smoother. I think I got some improved seek performance. I don't have to stop something cpu intensive to watch a movie.

The only interlaced content I tried with CUVID was extras on one of the blu-rays. (I couldn't remember anything else)
I just want something so that you can actually find out if its working, like to check after configuration. I'll probably add a small thing on the properties page somewhere.
If you're using EVR-CP in MPC-HC, it'll actually show DXVA in the status bar when CUVID is active, as a small indicator. Doesn't seem to show with other renderers.
Couldn't the filter change its name that shows up when its loaded in a player?

nevcairiel
24th September 2011, 20:44
Why is that? Interlaced content is not too common for me. With LAV CUVID the decoding to the gpu things got a lot smoother. I think I got some improved seek performance. I don't have to stop something cpu intensive to watch a movie.

Well, i just won't implement it only for simple decoding. Its not worth my time, if anything. If someone else wants to contribute a decoder component, feel free.
If i should ever switch to an ATI card, i would want hardware deinterlacing, because decoding i can already do without any extra coding work, on the CPU.

Couldn't the filter change its name that shows up when its loaded in a player?

Apparently changing the name on runtime causes some other components to go bananas, because they use the name to keep track of things.
I tried it with LAV Splitter Source before, instead of showing only the filename i wanted it to show "LAV Source (filename)". Caused breakage, alot of it. :p

jmone
24th September 2011, 22:34
There is no indicator right now. I've been thinkink about how to show one.

How about adding something to the Video Stream name, that way you can see it in players without leaving playback.

jmone
24th September 2011, 22:42
FYI: DVB-T (MPEG-2) is broken when using the CUVID option in LAVideo, it does play but typically the top 1/5th of the screen is OK then some corruption, but most of the screen is black. It is fine (apart from no deinterlacing) with CUVID off.

Edit - FYI this is with TS On in MC16 so it is the "playback" of the JTV file.

jmone
24th September 2011, 22:52
I should say that the Standalone LAVCUVID has no issue, it is only broken in LAVVideo. I've posted a screen shot over in the MC16 thread

asasadad_1
25th September 2011, 04:51
some interlaced mpeg-2 files works well via LAV CUVID Decoder(0.13),but many glitches via LAV Video Decoder 0.35(CUVID adaptive 50p/60p).
here is a sample (http://uploading.com/files/em16b78d/CCTV-HD_SAMPLE.ts).

nevcairiel
25th September 2011, 07:34
Specify what you mean with "glitches"? :)

upyzl
25th September 2011, 07:36
Bug report to RV40 Playback

I find that LAV Video 0.35 couldn't play smoothly
but MPC - RealVideo Decoder could play smoothly (I use MPC-HC 1.5.3.3733; right click --> Filters can find which filters are using when playing)

settings(the only one I changed):
http://i.imgur.com/2hamZ.png

sample:
http://www.mediafire.com/?prd61h7axoh1rlo
(Please compare the cloud moves when use different decoder)

roytam1
25th September 2011, 08:31
smells to me like a bad mux.

06_taro
25th September 2011, 12:25
DivX H.264 Decoder can decode 4:2:2 AVC for both 8 bit and 10 bit.

betaking
25th September 2011, 12:37
DivX H.264 Decoder can decode 4:2:2 AVC for both 8 bit and 10 bit.

use dxva by divx h.264 Decoder?:eek:

nevcairiel
25th September 2011, 13:48
Here is another test build of the integrated CUVID decoder.
It mostly includes fixes and performance enhancements.

http://files.1f0.de/lavf/LAVFilters-0.35-cuvid2.zip

I was unable to reproduce any issues with MPEG2 with that version, let me know if problems still occur.

betaking
25th September 2011, 13:57
Here is another test build of the integrated CUVID decoder.
It mostly includes fixes and performance enhancements.

http://files.1f0.de/lavf/LAVFilters-0.35-cuvid2.zip

I was unable to reproduce any issues with MPEG2 with that version, let me know if problems still occur.
To nevcairiel,use LAV Splitter(mp4) to decoder some mpeg4 files seek not ok! but stable 0.35 is ok!

CruNcher
25th September 2011, 15:39
DivX H.264 Decoder can decode 4:2:2 AVC for both 8 bit and 10 bit.

Sure it can it's based on Mainconcepts/Elecards Core and nope it doesn't support DXVA as well no one does and this is not a question of DXVA support but Hardware Vendor support.

dead_screem
25th September 2011, 17:27
I was unable to reproduce any issues with MPEG2 with that version, let me know if problems still occur.

Well in asasadad_1's sample and latest test, after a second after opening, the video stops for a split second. Happens with software decoding. Seems to be framerate related? Happens with LAV Splitter plus LAV Video. MPC-HC splitter plus LAV Video, And LAV Splitter plus MPC-HC decoder are fine.

As for the corruption mentioned, It happens on my 9800GTX which is VP2/VDPAU A, which afaik only has a Full H.264/AVC bitstream decoder, MPEG-2 and VC-1 are partial. But with LAV CUVID 0.13 it happily enables for MPEG-2 and VC-1 (not for ASP) and worked perfect with full adaptive deinterlacing... Although the MPEG-2 CPU usage seemed similar to software... don't know about VC-1 since LAV Video never worked with interlaced VC-1.

With the latest LAV Video CUVID, MPEG-2 still enables, but there is blocking on the bottom of the video, and like before has similar CPU usage to software. VC-1 no longer enables.

Any ideas why this is happening? LAV CUVID 0.13 didn't have a built in software fallback... and afaik the CUVID API itself doesn't have one right? does CUVID actually support partial acceleration modes? What is going on?

nevcairiel
25th September 2011, 17:33
CUVID has indeed support for partial acceleration. You can decode MPEG2 and VC1 with any device since Feature Set A/VP2, except that it'll do alot of things in software, of course. It does however not have a full software fallback mode. LAV Video adds that and will fallback to software ffmpeg decoding on unsupported content.
VC-1 is completely disabled in LAV Video by default, you'll have to enable it on the Formats tab on the property page, or it'll never work. Its independent from the setting in the hardware accel box.

I cannot reproduce any blocking (but i have a VP4), and the decoder code is really 99% the same from LAV CUVID, so that would be kinda odd.
All i can see in that file is that audio starts 320ms before the video, which means the first frame is frozen for that amount of time, but thats really unavoidable.
It looks like MPC-HCs splitter ignores that offset and starts the frame timestamps with "0", which would probably result in a slight desync eventually.

If you can easily reproduce the blocking problem, please compare to this version of LAV CUVID, it uses the same APIs as LAV Video does now:
http://files.1f0.de/cuvid/LAVCUVID-0.13-LegacyCUDA.zip

If that also shows the problem, i may need to add some code to manually switch to the "newer" APIs when a recent driver is installed.

dead_screem
25th September 2011, 18:27
VC-1 is completely disabled in LAV Video by default, you'll have to enable it on the Formats tab on the property page, or it'll never work. Its independent from the setting in the hardware accel box.alright, that fixed that. VC-1 is enabled and seems fine.

I cannot reproduce any blocking (but i have a VP4), and the decoder code is really 99% the same from LAV CUVID, so that would be kinda odd.
All i can see in that file is that audio starts half a second before the video, which means the first frame is frozen for that amount of time, but thats really unavoidable.No. that's not what I ment. That's what is supposed to happen. It gets stuck on the first frame. But with the latest test and that file the video starts playing imediately than stops (to resync) after about 1 second, then continues. enabling CUVID and it correctly stays stopped until the audio catches up. It's just software that is doing this. LAV Splitter plus MPC-HC decoder has correct behavior. LAV Splitter plus LAV Video. is the problem.

If you can easily reproduce the blocking problem, please compare to this version of LAV CUVID, it uses the same APIs as LAV Video does now:
http://files.1f0.de/cuvid/LAVCUVID-0.13-LegacyCUDA.zip
if that is the same build as on the LAV CUVID thread than that works perfect. I have always used Legacy LAV CUVID and it's fine.

here are some shots of asasadad_1's sample. I get similar results with nearly all 1080i content, but is just the minor blocking at the bottom, or appearing similar to 480i DVD content as a black screen with minor blocking up top. I have at least 1 1080i clip that exhibits no problems whatsoever.
http://imageshack.us/g/194/cctvhdsampletssnapshot0.png/

with 480i DVD content the entire screen is black except for some blocking at the top.

nevcairiel
25th September 2011, 18:50
I may have an idea why its happening.

Can you try this version?
http://files.1f0.de/lavf/LAVVideo-cuvid-ctxlocking.zip

Just drop it onto the previous cuvid2 version.

dead_screem
25th September 2011, 19:30
I may have an idea why its happening.

Can you try this version?
http://files.1f0.de/lavf/LAVVideo-cuvid-ctxlocking.zip

Just drop it onto the previous cuvid2 version.

no change.

update: with cuvid2 or the new build, no corruption when haali splitter is used. and significantly less corruption (but still some) when paired with mpc-hc splitter. But LAV CUVID 0.13 works with LAV Splitter just fine...

nevcairiel
25th September 2011, 19:55
This is so odd. Ill have access to a VP2 system tomorrow, maybe i can reproduce it there. The problem is limited to interlaced mpeg2, right?

nevcairiel
25th September 2011, 20:04
I may have a new idea, at least it would make sense

Last try for today: http://files.1f0.de/lavf/LAVVideo-mpeg2cuvid.zip

If this doesn't work, i'll have to try tomorrow. :)

dead_screem
25th September 2011, 20:06
This is so odd. Ill have access to a VP2 system tomorrow, maybe i can reproduce it there. The problem is limited to interlaced mpeg2, right?

I thought so but just verified it happens with 1080p as well.
This is basically all that is displayed throughout the entire video.
http://imageshack.us/photo/my-images/824/pv20090811gacktthenextd.png/

Also, to quote myself
and significantly less corruption (but still some) when paired with mpc-hc splitter.specifically with mpc-hc splitter, with 1080i, the corruption happens for a few seconds at the start of the file then all is fine...

with that same 1080p clip i posted a pic of above, together with mpc-hc splitter it looks like this now, corruption only at bottom
http://imageshack.us/photo/my-images/689/pv20090811gacktthenextd.png/

dead_screem
25th September 2011, 20:15
I may have a new idea, at least it would make sense

Last try for today: http://files.1f0.de/lavf/LAVVideo-mpeg2cuvid.zip

If this doesn't work, i'll have to try tomorrow. :)

Fixed!

nevcairiel
25th September 2011, 20:15
Great!

Thanks for your help debugging this. ;)

dead_screem
25th September 2011, 20:29
Great!

Thanks for your help debugging this. ;)

glad i could help.

one other thing i just noticed, with lav video when "Send Interlace Flags In Output Media Type" is set it will set dwInterlaceFlags: 0x00000081 even when CUVID is active. LAV CUVID didn't do this, will it screw up anything de-interlace wise?

nevcairiel
25th September 2011, 20:30
I don't think it hurts anything. Its always set on progressive content as well, and then all progressive frames flagged properly so that they dont get double-deinterlaced.

dead_screem
25th September 2011, 20:50
I don't think it hurts anything. so CUVID and direct show won't interfere with each other as long as the frames are flagged progressive after CUVID is finished decoding?

Its always set on progressive content as well,

and then all progressive frames flagged properly so that they dont get double-deinterlaced.

actually in lav video it's set to 0 when progressive is used. and 81 only when interlaced.

which flags do 0x81 correspond to anyway?

I do know there is a bob or weave mode, which when paired with flags on each sample allows for a mix of Bob TFF, Bob BFF, and weave/progressive. But I have yet to see a DVD decoder do this right for mixed TFF/BFF Interlaced DVDs as well as handling 2:3 pulldown progressive content correctly as progressive when dshow output interlace flags are set.

nevcairiel
25th September 2011, 20:54
0x81 is AMINTERLACE_IsInterlaced | AMINTERLACE_DisplayModeBobOrWeave, which are the proper flags to indicate mixed interlaced/progressive content, and instructs DirectShow to pay attention to the flags on the samples. Works perfectly for deinterlacing with EVR.

LAV Video always sets 0x81, as long as the option to report flags is ticked. Its currently not possible to directly find out if a video is pure progressive, or may contain interlaced parts, so i always indicate mixed content, and then flag all frames properly.
LAV CUVID never set any flags, because obviously it didn't need it. ;) I could probably disable the flags completely if the CUVID decoder is in use (and deinterlacing is not set to weave)

See Remarks on this page for details: http://msdn.microsoft.com/en-us/library/windows/desktop/dd407326(v=vs.85).aspx

dead_screem
25th September 2011, 21:40
LAV Video always sets 0x81, as long as the option to report flags is ticked. Its currently not possible to directly find out if a video is pure progressive, or may contain interlaced parts, so i always indicate mixed content, and then flag all frames properly.
LAV CUVID never set any flags, because obviously it didn't need it. ;)I coulda swore I checked and it set 0 for progressive. I must've confused it with CoreAVC which does infact set 0 for progressive and something else, probably bob only for interlace...

I could probably disable the flags completely if the CUVID decoder is in use (and deinterlacing is not set to weave)seems logical.

jmone
25th September 2011, 21:57
I may have a new idea, at least it would make sense

Last try for today: http://files.1f0.de/lavf/LAVVideo-mpeg2cuvid.zip

If this doesn't work, i'll have to try tomorrow. :)

Thanks - This version fixed the DTV in JTV corruption but the Aspect Ratio is now wrong with everything being presented in 4:3. Checked MPG and TS (MEPG2) files and they play correctly.

dead_screem
25th September 2011, 21:59
Bug, when MPEG-2 29.97 2:3 pulldown flagged progressive content is played with LAV Splitter + LAV Video the playback is really choppy, but with no dropped fames in the renderer. switch to MPC-HC splitter + LAV Video and is fine, a smooth 23.97 playback.

Also is DVD support planned ever? It would be nice to use LAV Video as a DVD Decoder...

06_taro
26th September 2011, 10:21
use dxva by divx h.264 Decoder?:eek:

Just software decoding.

nautilus7
26th September 2011, 10:42
Feature Request for LAV video

Add an option to show frame number and frame type (I/B/P) and maybe file name, like ffdshow.

http://i52.tinypic.com/2q39gtt.png

I need this to be able to compare frames (source vs encode) when backing up my sources.

nevcairiel
26th September 2011, 10:55
Bug, when MPEG-2 29.97 2:3 pulldown flagged progressive content is played with LAV Splitter + LAV Video the playback is really choppy, but with no dropped fames in the renderer. switch to MPC-HC splitter + LAV Video and is fine, a smooth 23.97 playback.

Can you get me a sample that shows the problem clearly?

Also is DVD support planned ever? It would be nice to use LAV Video as a DVD Decoder...

Its planned, but its sadly not as trivial as DVD audio decoding..

Feature Request for LAV video

Add an option to show frame number and frame type (I/B/P) and maybe file name, like ffdshow.

http://i52.tinypic.com/2q39gtt.png

I need this to be able to compare frames (source vs encode) when backing up my sources.

I don't really have that much of an interest in an OSD like that.
Feel free to open a feature request ticket on the google code tracker so it doesn't get lost, maybe i'll one day be bored enough.

azaze1
26th September 2011, 15:36
nevcairiel,

I'm shooting in the dark here at what may be the culprit I'm seeing, but I figured the audio decoder is the best place to start.

The issue I'm having is Bitstreaming the new Star Wars Episode 1 (phantom menace) Bluray. Specifically on chapter 3 at the very beginning after the opening credits. If I chapter SKIP to this chapter, moments before the ship flys by... and my audio is configured to bitstream... I get a horrifically LOUD sound artifact coming primarily from my rear speakers. If done with the volume at a modest level, it absolutely bombards my speakers with the loudest junk ever. I'm affraid my speakers have perm damage. This does not happen when I decode the audio with the Arcsoft dll and send 6.1 PCM to receiver. It also does not happen when simply playing the movie through normally. Only when bitstreaming and chapter skipping.

Here are some facts:

7.1 setup
Latest LAV Filters 0.35
Bitstreaming the Master Audio 6.1 track
ATI 11.8 drivers
Windows 7 32bit, latest patches etc
Latest nightlies of MPC-HC (updated here and there no difference)
Movie is in an MKV container... I purchased the bluray and ran eac3to to extract the streams in preparations for compression, but decided to start by simply repackaging as MKV.

Other facts:
If I play the Bluray in the PS3 slim and bitstream... no issue.

EVERY SINGLE OTHER MOVIE in my library is fine. I have hundreds, this is the first time I've had this issue happen, and I really hope it's got something to do with the rare 6.1 Master Audio source. Though it's not happening with the episodes 2 or 3. It does happen to other chapters in Episode 1... so it would appear to be JUST this audio track.

I can reproduce it every time. The only thing I've yet to try is loading the Bluray source and playing the movie from PC within m2ts containers. I will try that next, but I'm not sure what could be the culprit other than:

mkvmerge issue ? (can rule that out after m2ts playback test)
ATI Drivers ? (wouldn't be the first time, but why just this track?)
MPC-HC ? (I could try another player... but not sure what else will bitstream)
LAV Splitter (could the splitter have any influence?)
LAV Audio Decoder

I've tried going to back to FFDSHOW for DTS-HD bitstreaming which is what I did for more than a year but I can't seem to get MPC-HC to send any audio whatsoever after installing LAV 0.35. It's like ffdshow is broken for audio decoding after LAV install. I get some other AVI -> DTS filter in the mix rather than FFDSHOW Audio Decoder in the filters list while playing... no audio.

dead_screem
26th September 2011, 15:55
Can you get me a sample that shows the problem clearly?sure can.

http://www.megaupload.com/?d=YZZW0VD7
also, no problem with CUVID and this btw, just software...


Its planned, but its sadly not as trivial as DVD audio decoding..
Is it the additional pin requirements? DVD Subpicture in (which gets mixed with the main video by the decoder) and Line 21 output? or is it something else?

nevcairiel
26th September 2011, 16:10
The issue I'm having is Bitstreaming the new Star Wars Episode 1 (phantom menace) Bluray.

I believe its a issue with the disc, alot of people keep reporting similar issues.

http://www.avsforum.com/avs-vb/showthread.php?t=1360886

Sadly, the German edition of the collection is muxed differently, and only has a DTS-ES 6.1 track (no HD) for English (only German is DTS-HD, go figure, screw them).
So without the actual track in question i cannot check it out myself.

STaRGaZeR
26th September 2011, 16:28
Sadly, the German edition of the collection is muxed differently, and only has a DTS-ES 6.1 track (no HD) for English (only German is DTS-HD, go figure, screw them)

The same edition is sold here, shame on them.

nevcairiel
26th September 2011, 17:12
sure can.

http://www.megaupload.com/?d=YZZW0VD7
also, no problem with CUVID and this btw, just software...


Thanks, fixed in LAV Splitter (it was reporting the wrong fps for such mpeg2 files, resulting in LAV Video to use the wrong value to interpolate missing timestamps), and fixed in LAV Video to not trust the splitter values. ;)

azaze1
26th September 2011, 17:22
Understood. I went to Target yesterday to purchase the 3 disc set for Episodes 1, 2 and 3 so if it's an issue with the 1st movie disc then it's mass produced. It's not 1 bad disc source that spread like a virus.

Still, the issue is only on HTPC's bitstreaming. I'd also like to try either TMT or PowerDVD to see if bitstreaming in those players produces the same issue. If not.. it's got to be the open source realm.

I believe its a issue with the disc, alot of people keep reporting similar issues.

http://www.avsforum.com/avs-vb/showthread.php?t=1360886

Sadly, the German edition of the collection is muxed differently, and only has a DTS-ES 6.1 track (no HD) for English (only German is DTS-HD, go figure, screw them).
So without the actual track in question i cannot check it out myself.

Thunderbolt8
26th September 2011, 21:16
does anyone know VC-1 files which cause problems with haali splitter? seems like they all run comparably fine, seeking works instantly etc. maybe it would be useful to implement some of the ways haali works with VC-1 into LAV splitter.

nevcairiel
26th September 2011, 21:40
Whats wrong with VC-1?

Also, as if Haali is such a great tool to learn from, being closed source with an author that doesn't show around these parts anymore. :p

Thunderbolt8
26th September 2011, 21:56
VC-1 still seems to be quite slow with seeking on some BBC sources, at least with 0.35. maybe its going to be better in the next release.

dead_screem
26th September 2011, 22:12
Here is a sample that I found that has some problems.
http://www.megaupload.com/?d=0M5YGWJI

The DTS-HD MA track when played through AC3Filter (as just the DTS core) the frame rate goes absolutely nuts. with the audio playing way faster than the video, like over 30000fps fast. . oddly enough If CoreAVC is used instead of LAV Video it tries to keep the video in sync with the out of sync audio...
Use MPC-HC splitter and it's fine.

Also it has a DTS Express track that gets detected as MP1.

Midzuki
26th September 2011, 22:53
Its planned, but its sadly not as trivial as DVD audio decoding..

Do you mean LAV Source Filter does/will support .AOB demuxing and AUDIO_TS.IFO navigation? :confused: :)

dead_screem
26th September 2011, 22:56
Here is another DVD 29.97 progressive 2:3 pulldown file, except it seems to have been authored wrong.
According to mediainfo, both Progressive and 2:3 pulldown are not indicated...

http://www.megaupload.com/?d=JV41VWB8

might want to make sure this plays right (if possible of course)
once again mpc-hc gets 23.976 playback.

nevcairiel
27th September 2011, 06:34
Here is a sample that I found that has some problems.
http://www.megaupload.com/?d=0M5YGWJI

The DTS-HD MA track when played through AC3Filter (as just the DTS core) the frame rate goes absolutely nuts. with the audio playing way faster than the video, like over 30000fps fast. . oddly enough If CoreAVC is used instead of LAV Video it tries to keep the video in sync with the out of sync audio...
Use MPC-HC splitter and it's fine.

Also it has a DTS Express track that gets detected as MP1.

AC3Filter just does not support DTS-HD and goes mad with it. Nothing i can fix. Broken decoders will be broken.
Regarding the sync: I didn't implement options to drop frames on desync (yet). Not sure its really worth it. Playback will be broken no matter what.

I can look at the DTS Express detection, i think i know why it stopped working, i didn't pay close enough attention when merging ffmpeg changes...

Here is another DVD 29.97 progressive 2:3 pulldown file, except it seems to have been authored wrong.
According to mediainfo, both Progressive and 2:3 pulldown are not indicated...

http://www.megaupload.com/?d=JV41VWB8

might want to make sure this plays right (if possible of course)
once again mpc-hc gets 23.976 playback.

You played that with the last compile i provided, or with one after i applied the fix?
Anyhow, i'll just look at it when i get home.

Do you mean LAV Source Filter does/will support .AOB demuxing and AUDIO_TS.IFO navigation? :confused: :)

No, with "DVD audio" i just meant "audio on Video DVDs". :p

disto
27th September 2011, 06:36
Hi Nev are you planning to integrate deinterlacing option for software decoding not only for CUDA.

ForceX
27th September 2011, 11:24
Hi Nev are you planning to integrate deinterlacing option for software decoding not only for CUDA.
Yes, he is. It has been answered many times in the thread.
Deinterlacing is one post-processing task that i will probably allow sooner or later in LAV Video. ffmpeg already has a neat yadif filter.
And yes, LAV could have YADIF, and i do have plans to offer it eventually, but it'll be some time.

nevcairiel
27th September 2011, 12:43
Software deinterlacing might happen for 0.37, if everything pans out.
0.36 is basically finished, and will be released soon. Just some minor tweaks and alot of testing to do.

dead_screem
27th September 2011, 15:58
AC3Filter just does not support DTS-HD and goes mad with it. Nothing i can fix. Broken decoders will be broken.
Regarding the sync: I didn't implement options to drop frames on desync (yet). Not sure its really worth it. Playback will be broken no matter what.
Well, I know AC3filter doesn't support DTS-HD, that's not the point. Both DTS-HD HRA and DTS-HD MA both contain a DTS core that any decoder that doesn't support HRA or MA should still be able to play back, that's the whole point. when HRA is split out with LAV, AC3filter plays back the DTS core with no problems at all.
it's just MA that this happens with. And like I mentioned, use MPC-HC splitter and AC3filter can playback the DTS core in DTS-HD MA just fine...


You played that with the last compile i provided, or with one after i applied the fix?
Anyhow, i'll just look at it when i get home.
I checked with the latest build, it plays back correct, except it seems to have it's frames marked interlaced. And deinterlacing gets engaged causing a weird 36fps playback (why 36 thou I wonder?) (with de-interlacing off it plays back at 23.976).
Like I mentioned, It appears to be authored wrong, but it is from an official R2 DVD. According to mediainfo, neither Progressive nor Interlaced is indicated and 2:3 pulldown is not either. LAV must be assuming it's interlaced?

nevcairiel
27th September 2011, 16:01
Both DTS-HD HRA and DTS-HD MA both contain a DTS core that any decoder that doesn't support HRA or MA should still be able to play back, that's the whole point. when HRA is split out with LAV, AC3filter plays back the DTS core with no problems at all. it's just MA that this happens with.

I know how DTS-HD works. The point is that AC3Filter is just bugged and fails at playing the DTS Core.


And like I mentioned, use MPC-HC splitter and AC3filter can playback the DTS core in DTS-HD MA just fine...
Thats because the MPC-HC splitter removes the HD parts if it sees AC3Filter. I have no intention in supporting broken decoders through hacks.
Especiall AC3Filter. It hasnt been updated for quite a while, and thats not the only bug in it.



I checked with the latest build, it plays back correct, except it seems to have it's frames marked interlaced. And deinterlacing gets engaged causing a weird 36fps playback (why 36 thou I wonder?) (with de-interlacing off it plays back at 23.976).
Like I mentioned, It appears to be authored wrong, but it is from an official R2 DVD. According to mediainfo, neither Progressive nor Interlaced is indicated and 2:3 pulldown is not either. LAV must be assuming it's interlaced?

You can't "assume" interlaced. Either a frame is progressive, or its interlaced. Its a difference in the encoding of the movie, you can't forget to flag it.
What they probably forgot is to flag the pulldown, which is why it treats it as a mixed progressive/interlaced thing. 23.976 with a mixed sequence of maybe 1 progressive, 1 interlaced, etc, would end up as 36 fps. 12 progressive frames per second, and 12 interlaced "frames" (24 fields), being deinterlaced to 24 frames, making 36.

Double-rate/Video mode deinterlacing will usually always result in such weirdness. I could add some heuristic, and if it looks like mixed progressive/interlaced, turn off double rate or something....

dead_screem
27th September 2011, 16:06
Thats because the MPC-HC splitter removes the HD parts if it sees AC3Filter. I have no intention in supporting broken decoders through hacks.
Especiall AC3Filter. It hasnt been updated for quite a while, and thats not the only bug in it.
You should have said that in the first place :)

Any idea why AC3filter can playback the DTS core in HRA but not MA?

You can't "assume" interlaced. Either a frame is progressive, or its interlaced. Its a difference in the encoding of the movie, you can't forget to flag it.
What they probably forgot is to flag the pulldown, which is why it treats it as a mixed progressive/interlaced thing. 23.976 with a mixed sequence of maybe 1 progressive, 1 interlaced, etc, would end up as 36 fps. 12 progressive frames per second, and 12 interlaced "frames" (24 fields), being deinterlaced to 24 frames, making 36.

Double-rate/Video mode deinterlacing will usually always return in such weirdness. I could add some heuristic, and if it looks like mixed progressive/interlaced, turn off double rate or something....so the clip actually is mixed progressive/interlaced? would it have played back without deinterlacing enabled even if the pulldown was flagged?
well, the clip is broke either way, no need to add hacks just for this.

nevcairiel
27th September 2011, 16:13
No idea, i haven't read its code. It probably stumbles over the HD header off the lossless part in the MA profile or something.

nevcairiel
27th September 2011, 16:17
so the clip actually is mixed progressive/interlaced? would it have played back without deinterlacing enabled even if the pulldown was flagged?
well, the clip is broke either way, no need to add hacks just for this.

Its mixed, but its not really interlaced. Its meant to be pulldown, but without the flags it doesn't know that, so it only sees a frame consisting of two fields, and claims its interlaced. If you had the pulldown flags, it would know that its progressive, and re-assemble the frames properly.

Without deinterlacing/ivtc, you would probably see weave artifacts, because the pulldown is not corrected properly.

dead_screem
27th September 2011, 16:19
Its mixed, but its not really interlaced. Its meant to be pulldown, but without the flags it doesn't know that, so it only sees a frame consisting of two fields, and claims its interlaced. If you had the pulldown flags, it would know that its progressive, and re-assemble the frames properly.

Without deinterlacing/ivtc, you would probably see weave artifacts, because the pulldown is not corrected properly.

In that case, then If you can't heuristicly detect that pulldown should have been flagged when it wasn't to handle it "correctly", I'd leave it alone.
trying to detect mixed than force off double framerate just seems like a hack.

nevcairiel
27th September 2011, 16:28
I could check if its really a 1 progressive, 1 interlaced sequence. In that case, its quite likely that its meant to be pulldown. Or if someone encodes such a movie on purpose, they deserve to get only half-rate deinterlacing. :p

dead_screem
27th September 2011, 16:35
I could check if its really a 1 progressive, 1 interlaced sequence. In that case, its quite likely that its meant to be pulldown. Or if someone encodes such a movie on purpose, they deserve to get only half-rate deinterlacing. :p

So your saying you can detect if pulldown should have been flagged and then have the decoder treat it as if it was flagged properly and ivtc the frames properly?
And yeah, your probly right. There is probably no way someone would encode it like that on purpose and not mean for it to be pulldown.

As long as it's not a force-off double framerate hack, that's cool.

Qaq
27th September 2011, 16:56
That pulldown is really a pain in ass for me (because of incorrect flags I guess). I wonder how good eac3to removes pulldown or maybe there is a better tool for it?

glith
27th September 2011, 18:44
Nev, Any chance of implementing the audio delay option in LAV Audio before 0.36? Thanks! <3

Kaotech
27th September 2011, 20:00
Nev, Any chance of implementing the audio delay option in LAV Audio before 0.36? Thanks! <3

Why only audio delay, LFE Crossover and volume by channel it would be nice to :D

nand chan
27th September 2011, 20:34
In the options menu of the Audio Decoder, I've noticed a setting titled “Auto A/V Sync correction”.

What exactly does this setting do? Does it tie into LAV Video to ensure both streams start playing at the exact same time?

Does it do any time shifting / clock adjustments like ReClock does? (Most importantly, is it bit perfect?)

Why only audio delay, LFE Crossover and volume by channel it would be nice to :D

Audio delay would be considerably easier to implement than LFE crossover or other audio adjustment logic.

dead_screem
27th September 2011, 21:04
Couple feature requests,

In the splitter stream switch menu all the info is lower case. Is there a reason for this? Could it be changed to proper mixed case?
Also level isn't indicated for MPEG-2 only the profile, but it is for H.264 and VC-1.

And track titles in MP4 arn't displayed. This would be nice to have.

psymed
28th September 2011, 02:46
I tried to install LAVSplitter but...

RegSvr32

The module "LAVSplitter.ax" was loaded but the call to DllRegisterServer failed with error code 0x80070005.

edit: nvm... run as administrator worked...

nevcairiel
28th September 2011, 07:13
In the options menu of the Audio Decoder, I've noticed a setting titled “Auto A/V Sync correction”.

What exactly does this setting do? Does it tie into LAV Video to ensure both streams start playing at the exact same time?

I really should just remove that option, turning it off does usually never help.

Anyhow, what LAV Audio does is completely re-compute the timestamps of the audio based on the resulting PCM samples. This is done mostly to get rid of jittery timestamps in source files, providing a 100% smooth and jitter free PCM signal.

Now what that option does is watch the incoming timestamps from the source, and make sure they don't drift apart. If a file is undamaged, that should never happen, but if you watch a recording from DVB (or live DVB), its certainly possible that some data was lost in between, and there is a timestamp gap. Thats where the option would come in and re-sync the data.

Like i said in the beginning, thats how it should always work, and having an option to disable it doesn't really make all that much sense. It was mostly for debugging at first to make sure the new timestamp code works properly. :)

In the splitter stream switch menu all the info is lower case. Is there a reason for this? Could it be changed to proper mixed case?
The reason is that i like it that way. :D
Also, decoder names in ffmpeg are all lower case, so to make it look somewhat saner, i just lowercased everything.

Also level isn't indicated for MPEG-2 only the profile, but it is for H.264 and VC-1.

It could probably be added if the MPEG2 decoder outputs that information in ffmpeg, i'll look.

And track titles in MP4 arn't displayed. This would be nice to have.

I just display whatever title ffmpeg provides in the stream metadata.
Sample file with stream titles, and something that actually shows them? :) I don't have all that many mp4 files..

Xaurus
28th September 2011, 07:46
nev,

I think the main reason for me to still stick with ffdshow audio is because of the volume adjustments that can be done there. Unless I increase the volume here, the volume is a bit too low even with the volume at max in windows.

Is this something you will add or consider at a point?

I notice that a few people have requested an audio delay option as well. I think it would be neat but I've noticed that if a video or film is properly encoded it shouldn't be necessary to adjust the delay while using reclock.

nevcairiel
28th September 2011, 07:58
I think the main reason for me to still stick with ffdshow audio is because of the volume adjustments that can be done there. Unless I increase the volume here, the volume is a bit too low even with the volume at max in windows.

Increasing the volume in software on raw PCM is usually not a good idea, because it can easily result in clipping.
You should consider getting active speakers which can increase the volume in the analog domain.


I notice that a few people have requested an audio delay option as well. I think it would be neat but I've noticed that if a video or film is properly encoded it shouldn't be necessary to adjust the delay while using reclock.
The delay is not used because of broken encodes, its used because your hardware requires it in some cases, and nothing ReClock can do will fix it.

For me its like this:
I use HDMI out to a AV Receiver, which is then connected via HDMI to my TV.
The AV Receiver does not introduce a delay, but the TV does. The problem here is that the Audio is output without delay by the AV Receiver, but the image is delayed a bit (around 4-5 frames) by the TVs internal processing. So i set an audio delay of around 200ms, and everything is in sync again. This is quite a common problem with such setups. In the common case, the AV Receiver itself offers an option to configure the audio delay, but thats not always true.

For me, its even more complicated. The TV only introduces that delay when i play stuff at 24p, on 50 or 60Hz, there is no noticeable delay. Configuring this in the receiver is just impossible, so i use batch files to change refresh rate that also change the audio delay config in MPC-HC.

glith
28th September 2011, 07:58
I'm using AC3filter with about 190ms delay without reclock and every movie I watch is in perfect sync.
If I use LAV Audio instead of AC3Filter then I get very bad lip sync issues while watching 23.976 and 24hz movies.

I'd prefer using LAV audio, but I do not want to use reclock. :P

Cudo
28th September 2011, 08:16
It would be nice to have an adjustable crossover, I agree but some people do not use a subwoofer. They use full range front speakers to eliminate the need for it instead so IMO an option to downmix 5.1 to 5.0 would be very useful, if that's not asking too much of course. :)

Cudo
28th September 2011, 08:38
I'm using AC3filter with about 190ms delay without reclock and every movie I watch is in perfect sync.
If I use LAV Audio instead of AC3Filter then I get very bad lip sync issues while watching 23.976 and 24hz movies.

I'd prefer using LAV audio, but I do not want to use reclock. :P
I just did what Nevcairiel told me to, I set the audio delay in MPC-HC itself and it's been spot on ever since. Not using ReClock, just a custom resolution for 23.976 in Nvidia Control Panel.

@ Nevcairiel: I use a software tool to switch between 60 Hz, 50 Hz and 23.976 Hz that I can call from my batch files. But for some reason the Nvidia driver causes 24 Hz to be the same as 23.976 Hz until the custom resolution for 23.976 Hz is manually removed from the Nvidia Control Panel. So I have to work around this using a macro recording tool if I want to automatically switch between 23.976 Hz and 24 Hz. Do you know a better solution, by any chance?

nlnl
28th September 2011, 08:41
Software deinterlacing might happen for 0.37, if everything pans out.


:thanks:
And IVTC for NTSC films included?

nevcairiel
28th September 2011, 08:47
@ Nevcairiel: I use a software tool to switch between 60 Hz, 50 Hz and 23.976 Hz that I can call from my batch files. But for some reason the Nvidia driver causes 24 Hz to be the same as 23.976 Hz until the custom resolution for 23.976 Hz is manually removed from the Nvidia Control Panel. So I have to work around this using a macro recording tool if I want to automatically switch between 23.976 Hz and 24 Hz. Do you know a better solution, by any chance?

No, i just use 23.976 for everything. Real 24fps movies are so rare, and if i encounter one, ReClock fixes it for me.

And IVTC for NTSC films included?

No.

Cudo
28th September 2011, 09:07
^ Thanks again. I agree they're quite uncommon. Speeding up the audio in ReClock causes a minor loss in audio quality, though. It can easily be heard on a high end setup.

nlnl
28th September 2011, 09:11
Quote:
Originally Posted by nlnl View Post
And IVTC for NTSC films included?

No.

Do you have any plans for IVTC for ver. 0.xx>0.37 :)?

nevcairiel
28th September 2011, 09:12
^ Thanks again. I agree they're quite uncommon. Speeding up the audio in ReClock causes a minor loss in audio quality, though. It can easily be heard on a high end setup.

Its a slow-down, actually (from 24 to 23.976). Its also such a minor change that i doubt anyone can actually hear the difference. Do a double-blind test, so that your perception doesn't trick you. ;) Subjective perception is a bitch to get around. If you think it has to be worse quality, you'll most likely perceive it as lower quality as well.

I dont think its possible to work around that bug in NVIDIAs refresh rate control otherwise, both 23 and 24 map to the 23.976 mode if you create a custom resolution.

Cudo
28th September 2011, 09:39
Its a slow-down, actually
Yeah, sorry. lol Most people do it the opposite way.

I remember ver. 186.xx drivers didn't map the 23.976 to both 23 and 24. But their CUDA support is kind of meh.

glith
28th September 2011, 09:57
I just did what Nevcairiel told me to, I set the audio delay in MPC-HC itself and it's been spot on ever since. Not using ReClock, just a custom resolution for 23.976 in Nvidia Control Panel.

@ Nevcairiel: I use a software tool to switch between 60 Hz, 50 Hz and 23.976 Hz that I can call from my batch files. But for some reason the Nvidia driver causes 24 Hz to be the same as 23.976 Hz until the custom resolution for 23.976 Hz is manually removed from the Nvidia Control Panel. So I have to work around this using a macro recording tool if I want to automatically switch between 23.976 Hz and 24 Hz. Do you know a better solution, by any chance?

I'm using MediaPortal to watch my stuff.. No audio delay option in there tho. =/
(And MediaPortal has the nice built in refresh-rate changer.)

I have tried Reclock before but I couldnt really get it to work properly using HDMI. AC3filter was my saviour but cant really handle the DTS HD very well.

6233638
28th September 2011, 13:11
No, i just use 23.976 for everything. Real 24fps movies are so rare, and if i encounter one, ReClock fixes it for me.All films are "really" 24.0 fps.

I'm finding that an increasing number of Blu-rays are 24.0 on the disc, if that's what you meant though. (but that may be because I am in Europe)

^ Thanks again. I agree they're quite uncommon. Speeding up the audio in ReClock causes a minor loss in audio quality, though. It can easily be heard on a high end setup.If you are also oversampling the audio, I don't believe that is the case.

nand chan
28th September 2011, 14:11
It would be nice to have an adjustable crossover, I agree but some people do not use a subwoofer. They use full range front speakers to eliminate the need for it instead so IMO an option to downmix 5.1 to 5.0 would be very useful, if that's not asking too much of course. :)

Why don't you just use ffdshow's raw audio filter for all of this? That's what it's for. LAV Audio is just a decoder.

Mark_A_W
28th September 2011, 14:58
All films are "really" 24.0 fps.

I'm finding that an increasing number of Blu-rays are 24.0 on the disc, if that's what you meant though. (but that may be because I am in Europe)

If you are also oversampling the audio, I don't believe that is the case.


I've never come across a 24.0 Bluray, and I've bought/rented HEAPS, all film based (except BSG, but that's 23.976 anyway).

I agree with you about the oversampling, I don't think that the difference between 23.976 and 24.000 is audible when resampling to 96 or 192khz.

Cudo
28th September 2011, 15:05
^ That depends on whether it's DTS-HD MA being resampled.

Cudo
28th September 2011, 15:07
Why don't you just use ffdshow's raw audio filter for all of this?
Because it crashes MPC-HC alot when I'm trying to use the seekbar? :confused:

nevcairiel
28th September 2011, 15:20
All films are "really" 24.0 fps.

I'm finding that an increasing number of Blu-rays are 24.0 on the disc, if that's what you meant though. (but that may be because I am in Europe)


Yeah i meant coded on the disc. Its true that more discs have been 24.0 fps lately, quite an interesting development there.
I know that everything is recorded at 24.0 fps, but then the audio is mastered to match that rate exactly, so resampling it to fit a speed-up to 24.0 fps would also be lossy...

I do upsample all my audio with ReClock to 96000 Hz, so i would imagine the loss is not really noticeable. I'm still not sure if its better to watch at 23.976 or 24.000...

^ That depends on whether it's DTS-HD MA being resampled.

When its decoded, its just like any other audio. :p

Thunderbolt8
28th September 2011, 16:07
if everything is recorded at real 24 fps, why has the BD standard then been fixed to 23.976 fps? TV standards could have been changed as well, back then there havent been that many new flat TVs yet

nevcairiel
28th September 2011, 16:10
The BD standard allows both 23.976 and 24.000. 23.976 is still a relic from NTSC times, and backwards compat is apparently their main goal when developing new standards. ;)

6233638
28th September 2011, 17:22
The BD standard allows both 23.976 and 24.000. 23.976 is still a relic from NTSC times, and backwards compat is apparently their main goal when developing new standards. ;)I think that's probably why it seems more common on European discs, specifically of films originating in mainland Europe. (I watch a lot of French/Spanish films, though the odd British disc is 24.0 too)

Legacy in PAL regions would be 25fps/50Hz and no-one wants that (well, apart from the one or two films I have managed to get which are 1080i50) so there is no need to use 23.976 and they just go straight to 24.000.

Hopefully with the next generation of displays and video standards, we will see 24.0 worldwide. ( and possibly 48)

dead_screem
28th September 2011, 17:36
mp4 with track titles sample
http://www.megaupload.com/?d=KBETJMWZ

Mediainfo shows them and so does Haali. MPC-HC does as well but they only show in the audio switcher menu provided the audio switcher is enabled.

nevcairiel
28th September 2011, 18:50
This is stupid, as always.

Why do people use that field for the track name, instead of the dedicated atom for it? (Granted, its a quicktime atom, but shrug)
I know, probably because Haali decided to show that in the stream switcher. Formats driven by buggy implementations of it, so awesome .. not. :)

mzso
28th September 2011, 19:08
I think that's probably why it seems more common on European discs, specifically of films originating in mainland Europe. (I watch a lot of French/Spanish films, though the odd British disc is 24.0 too)

Legacy in PAL regions would be 25fps/50Hz and no-one wants that (well, apart from the one or two films I have managed to get which are 1080i50) so there is no need to use 23.976 and they just go straight to 24.000.

Hopefully with the next generation of displays and video standards, we will see 24.0 worldwide. ( and possibly 48)

I'm hoping for something like 120p... Displays are already capable. Studios could afford it, but so far they're too cheap. I mean friggin consumer cameras can record 60p without a problem.

nevcairiel
28th September 2011, 19:10
A cameras quality isn't defined by its recording speed. The High-end 4K cameras they use typically go to 48p. If there ever would be a change from 24, it would be to 48 or to 60, any higher will not happen anytime soon, if ever. Anything above 60 really isn't worth the added bandwidth/size anyway.

I would be happy enough if they get rid of interlacing and telecining, and just give us progressive video 100% of the time.

Andy o
28th September 2011, 19:24
I have ABXed consistently (20 consecutive times) a 1000 Hz sine and a 1001 Hz one. That means that one (me) can tell a 0.1% difference in pitch. However that's completely different than distinguishing actual content with 0.1% pitch difference, when not comparing A-B with immediate switch. I'd be skeptical that complex content (not a sine wave) would even be ABX-able with immediate switching.

24 is objectively better than 23.976, unless you like wasting 7 seconds of your life!

Andy o
28th September 2011, 19:29
I'm hoping for something like 120p... Displays are already capable. Studios could afford it, but so far they're too cheap. I mean friggin consumer cameras can record 60p without a problem.

I read Cameron proposing 48Hz (and not something like 60), because of easy retrofitting projectors at theaters. I don't think 120Hz would be such a gain that theaters would be willing to upgrade, even if studios did. IMO for anything above 50-60Hz diminishing returns apply.

mzso
28th September 2011, 20:23
A cameras quality isn't defined by its recording speed. The High-end 4K cameras they use typically go to 48p. If there ever would be a change from 24, it would be to 48 or to 60, any higher will not happen anytime soon, if ever. Anything above 60 really isn't worth the added bandwidth/size anyway.

I would be happy enough if they get rid of interlacing and telecining, and just give us progressive video 100% of the time.

Well, 120 would only double the size. :) But seriously, cinemas should provide something if they want to keep people interested. currently home cinema delivers the same if not more.

I read Cameron proposing 48Hz (and not something like 60), because of easy retrofitting projectors at theaters. I don't think 120Hz would be such a gain that theaters would be willing to upgrade, even if studios did. IMO for anything above 50-60Hz diminishing returns apply.
Well, if theaters don't upgrade Home displays can display 120 fps. They just have to shoot it at 120Hz. Cinemas will display it whatever rate they're can or want to.

Gero
28th September 2011, 21:25
I have a file (.m2ts) with several audio stream. Is there a way to configure the LAV splitter to make them available simultaneously? i.e. in graphedit, having a pin out for each stream? The goal is to play each stream on a different audio device.

Thanks

Andy o
28th September 2011, 22:54
Well, if theaters don't upgrade Home displays can display 120 fps. They just have to shoot it at 120Hz. Cinemas will display it whatever rate they're can or want to.

You think James Cameron will spend 300 million dollars for you to not pay 17 bucks per person at the theater?

pirlouy
28th September 2011, 23:37
120 Hz is useless for source. No need to go higher than 60 (quite eye limits).
48 Hz seems impossible, no compatibility with 60 Hz (or horrible judder)..
60 Hz ? too much data (for cd support or on-demand video)
So we had... 24Hz; sorry, won't change soon. :D

STaRGaZeR
28th September 2011, 23:41
120 Hz is useless for source. No need to go higher than 60 (quite eye limits).

:scared:

TheShadowRunner
28th September 2011, 23:59
Nev, is the On2 VP6 decoder functional?
The Lav Video Dec doesn't seem to want to accept sub-type {34564C46-0000-0010-8000-00AA00389B71} 4CC:FLV4, even though On2 VP6 should be able to handle them I believe. (sample (http://www.square-enix.co.jp/music/sem/page/xenogears_orchestra/swf/soundsbgm/pv.flv))

clsid
29th September 2011, 02:05
That sample plays fine here with LAV Video.

TheShadowRunner
29th September 2011, 02:53
That sample plays fine here with LAV Video.

I guess you're using LAV Splitter which I suspect is presenting another sub-type to LAV Video Dec. I use FLVSplitter.
Could you tell me the sub-type on the LAV Video filter input pin on your working graph?

JarrettH
29th September 2011, 03:58
Does the apply DRC effect work in lav audio? If so, it seems fairly mild at 100% and yes I am using it on an AC3 file. :thanks:

nevcairiel
29th September 2011, 06:34
I have a file (.m2ts) with several audio stream. Is there a way to configure the LAV splitter to make them available simultaneously? i.e. in graphedit, having a pin out for each stream?

Thats not possible at this time.

Nev, is the On2 VP6 decoder functional?
The Lav Video Dec doesn't seem to want to accept sub-type {34564C46-0000-0010-8000-00AA00389B71} 4CC:FLV4, even though On2 VP6 should be able to handle them I believe. (sample (http://www.square-enix.co.jp/music/sem/page/xenogears_orchestra/swf/soundsbgm/pv.flv))
It only accepts a subtype of VP6F (VP6 Flash). I can probably make it accept FLV4 as a subtype, if thats documented somewhere to be common usage.
Some quick googling reveals that it should map to the same, so i'll try that later.

Does the apply DRC effect work in lav audio? If so, it seems fairly mild at 100% and yes I am using it on an AC3 file. :thanks:
I have no idea how strong it really is, i just expose the setting of the AC3 decoder in ffmpeg.

mzso
29th September 2011, 10:56
120 Hz is useless for source. No need to go higher than 60 (quite eye limits).
48 Hz seems impossible, no compatibility with 60 Hz (or horrible judder)..
60 Hz ? too much data (for cd support or on-demand video)
So we had... 24Hz; sorry, won't change soon. :D

I guess you never used a 60 hz crt.
You think James Cameron will spend 300 million dollars for you to not pay 17 bucks per person at the theater?
Oh he would get his 17 bucks. You just wouldn't get full framerate everywhere. :)

nevcairiel
29th September 2011, 11:06
I guess you never used a 60 hz crt.

60Hz CRT are so bad because its CRT, not because the source is only 60 fps. Its a technical problem, it has nothing to do with the source refresh rate.


Oh he would get his 17 bucks. You just wouldn't get full framerate everywhere. :)

Why switch to something that wouldn't be used anywhere, except in the homes of people that spent a whole lot of money on high-end gear? :p

Home cinema equipment mostly already supports 60 fps, so if anything, that would be something to go to. If they want to go beyond what we can do now, i rather see increased resolutions, and a focus on higher bitdepth panels.
And there is of course the topic of chroma subsampling. The next disc/streaming format should rather focus on improved resolution and at least 4:2:2 chroma, instead of something totally overkill like 120 fps. :p

Luckily, the film makers are not as insane, and will never go to 120 fps. You can argue all you want, its just not going to happen. Going 48 would be a good idea, sadly its not compatible with existing techs, as 48 is such a odd and unsupported resolution.

Anyhow, this discussion is totally off-topic for this thread, and if you want to continue, please take it elsewhere. :)

sneaker_ger
29th September 2011, 11:14
The problem with higher frame rates is also an artistic question. The "look and feel" of the movies that we are used to, could change in a way that audiences might not accept. Anyone see "Public Enemies"? I couldn't get used to its look. Or the higher framerate could be limited to scenes that need it, like pans. Higher resolutions, better subsampling (or rather the lack thereof), higher bitdepth are more likely to be accepted (and the first and the latter could be marketed the best, I presume.)

mzso
29th September 2011, 11:26
60Hz CRT are so bad because its CRT, not because the source is only 60 fps. Its a technical problem, it has nothing to do with the source refresh rate.
Its bad because its crt and 60hz. With 100 hz crt's people didn't have problems, because that's close to the limit of perception.


Why switch to something that wouldn't be used anywhere, except in the homes of people that spent a whole lot of money on high-end gear? :p

Home cinema equipment mostly already supports 60 fps, so if anything, that would be something to go to. If they want to go beyond what we can do now, i rather see increased resolutions, and a focus on higher bitdepth panels.
And there is of course the topic of chroma subsampling. The next disc/streaming format should rather focus on improved resolution and at least 4:2:2 chroma, instead of something totally overkill like 120 fps. :p

Well 120hz and such seems quite common to me with the 3d push and all. Also it very quickly can become the norm if manufacturers fire up their marketing machines. People keep buying new tv even when there are 99% the same as the previous generation....

I just don't see why not make the leap and be done with it for good.

4:2:0 is just stupid standard isn't it? They could just stop butchering the colors. Hell it might work well on 50gb blu ray size with a good encoder The source is full color I suppose.

Speaking of colors I wonder what resolution would be enough. 30 bit? 36?

nand chan
29th September 2011, 16:54
Why is everybody so hung up about the framerates?

The REAL problem with cinema movies and the Blu-ray process is the current limitation to the BT.709 primaries. So many displays can display significantly larger gamuts, with higher end projectors reaching up to 180% NTSC (movies are at 72%)! Why should we have to go to theaters to get the unbutchered masters?

The only problem is the Blu-ray process. If we started switching to xvYCC or ACES or ProPhoto RGB or whatever, the whole process would be much, much simpler. That, and of course, 16-bit video to eliminate the banding this would introduce.

And, of course, stupid chroma sub-sampling. If they cut out all of the completely useless DTS, AC3, MPEG-2 and whatever compatibility tracks and just switched to 16-bit 4:4:4 H.264 with ACES primaries + APE / TTA (or possibly FLAC), we would get pretty much the same quality while making full usage of the available 50 GB of a dual-layer Blu-ray.

Or maybe even glass silica discs in the near future, with which we could basically store RGB32 with no problems.

Oh, and we could fix the framerate problem by allowing variable frame-rates, eg. speeding up to 120 Hz for pans but slowing down to 24 Hz or whatever for scenes with a lot of static imagery or motion blur.

nevcairiel
29th September 2011, 17:02
Anything, but not VFR, unless you build a screen that supports VFR as well.

SamuriHL
29th September 2011, 17:10
Anything, but not VFR, unless you build a screen that supports VFR as well.

You got that right! My screen takes on average about 2-3 seconds to switch. Forget that!!

nevcairiel
29th September 2011, 17:10
LAV Filters 0.36

LAV Splitter
- Improved support for ADTS AAC
- Fixed MPEG-2 timestamps in VOB
- Fixed MPEG-2 frame rate reporting for telecined/interlaced

LAV Video
- Integrated NVIDIA CUVID Hardware decoder
- Performance enhancements in 10bit decoding
- Support for Flash Screen Video (FSV1)
- Support for Apple ProRes
- Improved MPEG-2 playback
- Improved A/V sync with VC-1 and MPEG4-ASP


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.36.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.36.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.36-x64.zip)

It was time to get this out for good. You can only do so much testing yourself, at some point you just gotta get it out there. ;)

The biggest change in this release is obviously the integration of the CUVID decoder. To embed the decoder, LAV Video was basically rewritten to 80-90%, because it was initially not designed to support more then one decoder properly.
A big change like that always has the potential to break stuff, but also to improve things, so we'll see how it goes. :)

The CUVID decoder supports full software fallback for unsupported H264 profiles (the hardware only supports High Profile, which means 4:2:0 8bit), as well as 4:2:2 MPEG-2. You can however not use another software decoder when CUVID fails, but seriously who would want that? :D
In addition to porting the existing CUVID functionality, there is a new option called "Force Deinterlacing", which will force the deinterlacer to process all frames, even if marked progressive. This can be used to deinterlace videos that were encoded as progressive but actually are weaved interlaced fields.

Note that LAV CUVID will basically be discontinued now, all its functionality is available through LAV Video. Only missing is MPEG4-ASP decoding through CUVID, but i don't believe the extra effort is really worth it.

Anyway, have fun with this release, and report bugs and regressions!

SamuriHL
29th September 2011, 17:20
Awesome. Thanks, Nev! Now let's see if we can get Matt to update MC16 to use this at least in place of the existing CUVID.

ney2x
29th September 2011, 17:24
I am at work right now and I'm only using a laptop so it's impossible for me to test the latest release. My questions are, does LAV CUVID ends with the version 0.13? Does Arcsoft dts*.dll workaround still recommended? Thanks.

Xaurus
29th September 2011, 17:25
Thank you nevcairiel! I've said goodbye to LAV CUVID now.

Q: When does the multi-threaded function work? I am trying a h.264 clip with hardware disabled and threads set to 6... but in task manager it only use 1 thread.

Q: There is no way yet to determine whether hardware or software decoding is in use?

nand chan
29th September 2011, 17:25
- Performance enhancements in 10bit decoding

Great to hear. How much of an increase have you been measuring, on average?

andyvt
29th September 2011, 17:25
LAV Filters 0.36

LAV Video
- Integrated NVIDIA CUVID Hardware decoder





I like where you're going with this :)

nevcairiel
29th September 2011, 17:49
Q: When does the multi-threaded function work? I am trying a h.264 clip with hardware disabled and threads set to 6... but in task manager it only use 1 thread.

Multithreading is used on compatible formats, and H264 is one of them. Not sure what your task manager shows, but threads are always created. :p
Easiest way to see the difference is by comparing the speed.

Of course, H264 multi-threading is not used if you use CUVID. The hardware manages that itself.


Q: There is no way yet to determine whether hardware or software decoding is in use?

There is, next to the dropdown is a small text field, it can say "Not available", "Available" and "Active".

Great to hear. How much of an increase have you been measuring, on average?
Really depends on the speed of your PC. On a fast PC, its basically nothing, but on slower ones its a few %, but nothing really major either.

pirlouy
29th September 2011, 18:10
120 Hz is useless for source. No need to go higher than 60 (quite eye limits).
:scared:
Sorry, I should have said "nothing useful comes to my mind", but I'm sure some will find a good reason (maybe for slow motion).

For eyes limit, the same, I meant "I think there's no visible difference between 60 fps and more".

FYI, I have a 120Hz monitor for gaming, I play at 120 fps, but 120 fps are not really necessary, compared to a quick response time (and less ghost effect).

Xaurus
29th September 2011, 18:35
nev,

A bit more on the "threads" topic.

Here's with threads set to 6:
click for png (http://home.halden.net/mordor/threads_6.png)

Here's with threads set to auto:
click for png (http://home.halden.net/mordor/threads_auto.png)

None of them use the full capacity... or am I missing something?

nevcairiel
29th September 2011, 18:38
How good parallel decoding works also depends on the file itself, it just tops out at some point, especially if its already running at 1000 fps. Might also be some other part thats limiting at that speeds.

Gleb Egorych
29th September 2011, 18:38
Hi, nevcariel!

Thanks for the constant developing and improving!

Here is a sample, recorded from satelite: http://www.mediafire.com/?e6ltxec7p44di7d
I can't get 50 fps on it with LAV Video (and LAV CUVID). Such streams appear quite often on DVB in different countries. Cyberlink decoders stably give 50 fps (in DXVA mode).

I wrote about the problem a few times, just want to put everything in one place: the description and the sample.

Sebastiii
29th September 2011, 18:43
Thanks nev :)

STaRGaZeR
29th September 2011, 19:01
Sorry, I should have said "nothing useful comes to my mind", but I'm sure some will find a good reason (maybe for slow motion).

For eyes limit, the same, I meant "I think there's no visible difference between 60 fps and more".

FYI, I have a 120Hz monitor for gaming, I play at 120 fps, but 120 fps are not really necessary, compared to a quick response time (and less ghost effect).

No need for slow motion, 120 vs 60 is easily noticeable, I also have a 120Hz monitor. When you experience real and constant 120fps you just can't go back to 60fps. Being compatible with most legacy rates (24, 30, 60 and their /1001 variants) is another big point for it. As always, it's a tradeoff: it is useful and you can see it, but it's complete overkill for the general public.

I'd rather focus on improving the subsampling, bit depth, interlacing, resolution and available refresh rates mess before trying to stablish anything new.

nevcairiel
29th September 2011, 19:04
Here is a sample, recorded from satelite: http://www.mediafire.com/?e6ltxec7p44di7d
I can't get 50 fps on it with LAV Video (and LAV CUVID). Such streams appear quite often on DVB in different countries. Cyberlink decoders stably give 50 fps (in DXVA mode).

I wrote about the problem a few times, just want to put everything in one place: the description and the sample.

Plays perfectly smooth here. Note that it seems to be a mixture of 25p and 50i, it switches at some points in between, so in total its at around 43fps, but the motion is perfectly smooth.
I've seen alot of such samples before, apparently its quite common to flag some parts as progressive, and leave others as interlaced, especially in DVB. Don't ask me why they do it.

I noticed one broken thing though. If you use MPC-HCs EVR-CP, you need to make sure Frame Time Correction is off, otherwise the switches between 25p and 50i will cause stuttering.

I can imagine that the Cyberlink decoder forces deinterlacing on the progressive frames, which doesn't hurt and it results in full 50 fps, but it also doesn't benefit you, so the result i get with LAV Video in both software or CUVID mode is perfect.

Gleb Egorych
29th September 2011, 19:31
nevcairiel,

As I understand this video's supposed to be deinterlaced always although sometimes it's marked as 25p and sometimes as 50i. If you play it with Cyberlink (at 50 fps) and make a frame steps I will see that there is no double frames.

I don't know, maybe it depends on videocard, I use 8800GT on Win7 and for me playback is not smooth, it obviously judders. Since it's sports sample with fast motion it is more clear.

Also note court lines at 11-15 sec of the sample. For me they are aliased with forced deinterlacing in LAV and are far smoother with Cyberlink.

nevcairiel
29th September 2011, 19:39
You should go yell at your DVB provider then to stop encoding broken videos. :)

I have no plans to add ugly hacks to try to fix broken encodings. If they actually encode weaved fields into a progressive frame (for whatever reason), then thats what you'll get.
I could add an option to force double-rate deinterlacing, which would get you the 50fps, but that line still look a bit aliased. :) Or just make the force deint option do that .. i don't think its a good idea to have it always on anyway.
What i won't do is add some auto-magic to try to fix it automatically, because that has a far too high risk to break a perfectly fine movie.

6233638
29th September 2011, 20:05
The integrated CUVID seems to be working great so far.

Should I be using LAV Splitter, or LAV Splitter Source with MPC-HC? (currently using Source)
Does the internal audio switcher still need to be enabled with MPC-HC?

rack04
29th September 2011, 20:06
I'm guessing that when using madVR I should set the RGB Output Levels (for YUV->RGB conversion) to "untouched (as input)"?

Gleb Egorych
29th September 2011, 20:07
From the description I thought "Force Deinterlacing" option is supposed for the job.

Pat357
29th September 2011, 20:08
I was watching a movie when I noticed 0.36 was released. I was using the non-official build posted by nev (2nd update).

I stopped the movie, installed 0.36 over the existing install and restarted my movie. There was no sound : in the status tab from LAVAUDIO, there was no activity (levels stayed @ 0).
After reopening the movie a couple of times, I had finally sound.

After switching output in MPC 3740 to MadVR and reopen the movie, the sound was gone again ! The status tab from LAVAUDIO showed the 2 channels in max (always against the max (all green), not moving)....
Reopening the file solved the problem : sound was back again.

Movie : Battlefield_3_Fault_Line_Full_Trailer.mov
H264 encoded + AAC 2 channing sound.
This is a movie I use for testing splitters, decoders and renderers. I never had this problem with any prevouis version from LAVAUDIO.

Pin info from LAVAUDIO :
IN :
====================================
Audio: AAC 48000Hz stereo 128kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {000000FF-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 20

WAVEFORMATEX:
wFormatTag: 0x00ff
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 16000
nBlockAlign: 2
wBitsPerSample: 8
cbSize: 2 (extra bytes)

pbFormat:
0000: ff 00 02 00 80 bb 00 00 80 3e 00 00 02 00 08 00 ...€..€>......
0010: 02 00|11 90
==================================
OUT :
======================================
Filter : LAV Audio Decoder - CLSID : {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}

- Connected to:

CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Apple Sound Media Handler

- Connection media type:

Audio: IEEE Float 48000Hz stereo 3072kbps

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

WAVEFORMATEX:
wFormatTag: 0x0003
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 384000
nBlockAlign: 8
wBitsPerSample: 32
cbSize: 0 (extra bytes)

pbFormat:
0000: 03 00 02 00 80 bb 00 00 00 dc 05 00 08 00 20 00 ....€....... .
0010: 00 00 ..

- Enumerated media type 0:

Set as the current media type
======================================
INFO about the splitter :

==========BEGIN AUDIO===================
Filter : K:\film\Battlefield_3_Fault_Line_Full_Trailer.mov - CLSID : {3CCC052E-BDEE-408A-BEA7-90914EF2964B}

- Connected to:

CLSID: {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}
Filter: LAV Audio Decoder
Pin: Input

- Connection media type:

Audio: AAC 48000Hz stereo 128kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {000000FF-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 20

WAVEFORMATEX:
wFormatTag: 0x00ff
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 16000
nBlockAlign: 2
wBitsPerSample: 8
cbSize: 2 (extra bytes)

pbFormat:
0000: ff 00 02 00 80 bb 00 00 80 3e 00 00 02 00 08 00 ...€..€>......
0010: 02 00|11 90 ...

- Enumerated media type 0:

Set as the current media type
======================================
VIDEO :
=======BEGIN VIDEO======================
Filter : K:\film\Battlefield_3_Fault_Line_Full_Trailer.mov - CLSID : {3CCC052E-BDEE-408A-BEA7-90914EF2964B}

- Connected to:

CLSID: {EE30215D-164F-4A92-A4EB-9D4C13390F9F}
Filter: LAV Video Decoder
Pin: XForm In

- Connection media type:

Video: MPEG4 Video (H264) 1920x1080 60.00fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31637661-0000-0010-8000-00AA00389B71}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 162

VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 166670

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 30
dwProfile: 0x0000004d
dwLevel: 0x0000002a
dwFlags: 0x00000004

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 24
biCompression: avc1
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 0e 8b 02 00 00 00 00 00 .........‹......
0030: 00 00 00 00 00 00 00 00 10 00 00 00 09 00 00 00 ................
0040: 00 00 00 00 00 00 00 00 28 00 00 00 80 07 00 00 ........(...€...
0050: 38 04 00 00 01 00 18 00 61 76 63 31 00 00 00 00 8.......avc1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070: 00 00 00 00 1e 00 00 00 4d 00 00 00 2a 00 00 00 ........M...*...
0080: 04 00 00 00|00 16 27 4d 40 2a a9 18 0f 00 44 fc ......'M@*...D
0090: b8 03 50 10 10 1b 6c 2b 5e f7 c0 40 00 04 28 de .P...l+^@..(
00a0: 09 c8 .

- Enumerated media type 0:
======================================

Thunderbolt8
29th September 2011, 20:38
2 things:

I cant seem to get VC-1 stuff with LAVsplitter and LAVvideo to play (mpc-hc starts up paused when I click play such a file and cannot be unpaused). setup is ffdshow set to raw video and VC-1 is ticked in LAVvideo and also in win7dsfilter. the vids I tested worked fine with the MS DecoderDMO instead of LAVvideo though.

2nd thing, that multithreading box in LAVvideo, is VC-1 multithreading available?

edit: those vids are BBC blu-rays, some of the newer stuff. some other older BBC VC-1 files play fine.

nevcairiel
29th September 2011, 21:21
BBC Blu-rays are interlaced VC-1. Interlaced is not supported by LAV Videos software decoder yet, only the NVIDIA CUVID decoder supports interlaced VC-1.

And no, the VC-1 software codec does not support multithreading at this time.

dead_screem
29th September 2011, 21:58
Does the internal audio switcher still need to be enabled with MPC-HC?
no. LAV Splitter has built in stream switching.

TheShadowRunner
29th September 2011, 22:04
nev, thanks for adding the FLV4 sub-type.
It has however put to light a bug of the integrated On2 VP6 decoder (ffmpeg?), which clsid identified as a ffdshow bug (https://sourceforge.net/tracker/?func=detail&aid=3221231&group_id=173941&atid=867360).
Seems like it's actually a ffmpeg issue? Where should I report the bug it if it's the case? ^^;
Here is the original On2 VP6 decoder (http://videoff7.free.fr/On2_VP6 Decoder.zip), which does NOT exhibit the bug.. (ffdshow & LAV do)

Edit: just remembered I already reported the bug on the ffmpeg tracker (http://roundup.libav.org/issue2620), but it was identified as a ffdshow bug, so which is it haha !!?

hobbs1
29th September 2011, 22:38
Not sure if this is a bug or not but I just installed v36 and with Potplayer .mp4 videos (AVC1) I'm getting no video and when I look at the play information on video decoder it says "There is no codec" and all info is listed as unknown. I had been using v35 with no problems but v36 isn't working for me with .mp4 videos.

I did a system restart after installation and still I get nada?

Any help would be appreciated. Below is the file into from v35 & v36.

Here is the file info from v36

F:\Movies\Blade Runner (1982)\Blade Runner (Final Cut).mp4
General
Complete name : F:\Movies\Blade Runner (1982)\Blade Runner (Final Cut).mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 738 MiB
Duration : 1h 52mn
Overall bit rate mode : Variable
Overall bit rate : 915 Kbps
Encoded date : UTC 2007-12-05 08:19:57
Tagged date : UTC 2007-12-05 09:57:36
Video #1
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1h 52mn
Bit rate mode : Variable
Bit rate : 785 Kbps
Width : 720 pixels
Height : 304 pixels
Display aspect ratio : 2.35:1
Frame rate mode : Constant
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.143
Stream size : 633 MiB (86%)
Writing library : x264 core 56 svn-665M
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0x111 / me=hex / subme=4 / brdo=0 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / chroma_qp_offset=0 / threads=1 / nr=0 / decimate=1 / mbaff=0 / bframes=0 / keyint=500 / keyint_min=25 / scenecut=40 / rc=2pass / bitrate=785 / ratetol=1.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40
Language : English
Encoded date : UTC 2007-12-05 08:19:57
Tagged date : UTC 2007-12-05 09:57:36

On V 35 everything works correctly. Here is the file info from v35

F:\Movies\Blade Runner (1982)\Blade Runner (Final Cut).mp4
General
Complete name : F:\Movies\Blade Runner (1982)\Blade Runner (Final Cut).mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 738 MiB
Duration : 1h 52mn
Overall bit rate mode : Variable
Overall bit rate : 915 Kbps
Encoded date : UTC 2007-12-05 08:19:57
Tagged date : UTC 2007-12-05 09:57:36
Video #1
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1h 52mn
Bit rate mode : Variable
Bit rate : 785 Kbps
Width : 720 pixels
Height : 304 pixels
Display aspect ratio : 2.35:1
Frame rate mode : Constant
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.143
Stream size : 633 MiB (86%)
Writing library : x264 core 56 svn-665M
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0x111 / me=hex / subme=4 / brdo=0 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / chroma_qp_offset=0 / threads=1 / nr=0 / decimate=1 / mbaff=0 / bframes=0 / keyint=500 / keyint_min=25 / scenecut=40 / rc=2pass / bitrate=785 / ratetol=1.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40
Language : English
Encoded date : UTC 2007-12-05 08:19:57
Tagged date : UTC 2007-12-05 09:57:36

jmone
29th September 2011, 22:40
FYI - the AR issue using CUVID in LAVVideo with DTV is fixed

SEt
29th September 2011, 22:40
I think forced deinterlacing should obey single/double framerate setting.

jmone
29th September 2011, 23:29
Out of interest since CUVID is now an option in LAV Video are other GPU Assisted Decoders now on the potential horizon to include (eg projects like egur's Intel Video Decoder, HAM, even DXVA)?

Mixer73
29th September 2011, 23:55
And, of course, stupid chroma sub-sampling. If they cut out all of the completely useless DTS, AC3, MPEG-2 and whatever compatibility tracks and just switched to 16-bit 4:4:4 H.264 with ACES primaries + APE / TTA (or possibly FLAC), we would get pretty much the same quality while making full usage of the available 50 GB of a dual-layer Blu-ray.

And the best part is the whole new product will be delivered by leprechauns and fairies, carried on carts pulled by unicorns...

No need for slow motion, 120 vs 60 is easily noticeable, I also have a 120Hz monitor. When you experience real and constant 120fps you just can't go back to 60fps. Being compatible with most legacy rates (24, 30, 60 and their /1001 variants) is another big point for it. As always, it's a tradeoff: it is useful and you can see it, but it's complete overkill for the general public.

Most legacy rates... Apart from 25/50, you know the ones that a very large part of the world that is NotAmerica uses?

STaRGaZeR
30th September 2011, 00:09
Most legacy rates... Apart from 25/50, you know the ones that a very large part of the world that is NotAmerica uses?

Yes, mainly because I live in NotAmerica as you call it.

But wait, what rates are common that weren't in my list? 23.976, 24, 25, 29.97, 30, 50, 59.94, 60 --> All of them except 25/50.

nevcairiel
30th September 2011, 06:43
nev, thanks for adding the FLV4 sub-type.
It has however put to light a bug of the integrated On2 VP6 decoder (ffmpeg?), which clsid identified as a ffdshow bug (https://sourceforge.net/tracker/?func=detail&aid=3221231&group_id=173941&atid=867360).
Seems like it's actually a ffmpeg issue? Where should I report the bug it if it's the case? ^^;
Here is the original On2 VP6 decoder (http://videoff7.free.fr/On2_VP6 Decoder.zip), which does NOT exhibit the bug.. (ffdshow & LAV do)

Edit: just remembered I already reported the bug on the ffmpeg tracker (http://roundup.libav.org/issue2620), but it was identified as a ffdshow bug, so which is it haha !!?

I can take a look later, maybe the cropping info is exported somewhere where i don't look yet.

I think forced deinterlacing should obey single/double framerate setting.

The problem is that when you tick it and watch a 24p movie, you would end up with 48 fps, which is the main reason i didn't do it like that.
But then, i could just add a warning in there letting everyone know that activating that option is done at their own peril :)

Out of interest since CUVID is now an option in LAV Video are other GPU Assisted Decoders now on the potential horizon to include (eg projects like egur's Intel Video Decoder, HAM, even DXVA)?

Intel for sure, maybe DXVA some day, but nothing ATI specific unless they finally come out with a proper working API.

JarrettH
30th September 2011, 06:46
Should I be using LAV Splitter, or LAV Splitter Source with MPC-HC? (currently using Source)


Curious as to the difference as I saw both listed too :cool:

nevcairiel
30th September 2011, 06:54
Should I be using LAV Splitter, or LAV Splitter Source with MPC-HC? (currently using Source)

You have to understand the difference between the two.
The Source variant only works if your player directly requests it, or DirectShow is configured to use it for a specific file type.
The non-source variant can always be used, because MPC-HC falls back to opening the file with a default File Source filter, and then looking for a splitter filter that takes the file. Setting the Source variant as preferred filter will usually not do much, unless its registered for a file type already anyway.

If you used the installer, or you use a player which lets you configure source filters per file type, using Source is probably better (a bit faster at loading).
If you just registered the .ax from the zip files, the Source probably won't be used (except for Blu-rays), and the normal "LAV Splitter" in conjunction with the "File Source (Async)" is probably preferred.

I recommend simply using the .exe Installer for LAV Splitter, which will register the Source variant for all common formats, and make everything so much easier. I use it on my HTPC at least, and everything works out of the box. :)

Haali has it similar.
There is Haali Media Splitter, and Haali Media Splitter (AR). The former is its "Source" variant, and the latter the one that works with a default file source. Haalis installer always registers the Source variant for the formats, so that the (AR) version is usually never used, though.

Sebastiii
30th September 2011, 06:58
We personnaly force using it with MP (source one ofc) and it work nice :) but if not it fallback to filesource :)

psymed
30th September 2011, 09:12
x64 or x86 for madvr?

adam777
30th September 2011, 09:28
x64 or x86 for madvr?

x86, madVR is x86 only.

andybkma
30th September 2011, 11:07
Windows 7, Zoom Player 7 Max

Installed newest LAV Filter .36 today. Had no choice because you now integrated H264 CUVID into it which I like very much :)

But unfortunately LAV Filter "broke" my MPEG-1 & MPEG-2 playback for files that have the .mpg extension. With Zoom Player's Smart Play, I have Elecard MPEG Demultiplexer set to be my MPEG-1 & 2 splitter and Elecard MPEG-2 Decoder to be my MPEG-1 & 2 decoder because that works best for me. Even though I disabled the three splitters labeled MPEG under LAV Splitter settings and MPEG-1/2 decoders under the LAV Decoder config settings (including CUVID MPEG-2), Zoom Player still won't play my MPEG-1 & 2 video files that have an .mpg extension which is most of them. Even changing to Microsoft's splitter and decoder will now not work. Can't even open the files in GraphStudio. But if I change the .mpg file extension to .mpeg then they play using my Elecard splitter and decoder and I can open them again in GraphStudio.

This is the error message I get in Zoom Player when I attempt to play any MPEG-1 or MPEG-2 files with .mpg extension with LAV Filters installed (with LAV Filters uninstalled no problems):

Could not find a suitable Decoder for "[Source File: Smart Play Graph].Output"
SubTypes:
{00000000-0000-0000-0000-000000000000}
{00000000-0000-0000-0000-000000000000}

Can you please explain why this is happening and how to fix it? Perhaps adding the .mpg file extension to the LAV config settings under Splitter and Decoder so it can be disabled? Or is something else sinister going on here...

Thanks much

nevcairiel
30th September 2011, 11:27
You should probably just complain to Blight because his Smart Play functionality is not as "Smart" as it claims. It does not function like DirectShow, yet it depends on DirectShow configuration. :)

Anyway, if you use the .exe installer, make sure the MPEG options are disabled in the installer already. Enabling them in the installer, and then afterwards disabling them in the splitter configuration may cause funny behaviour with that "Smart Play" mode. The problem is that changing the setting the installer writes requires admin priviledges/UAC elevation, which the properties page does not have.

In general, Zoom Player Smart Play problems are usually not something i feel like handling, because its not standard behaviour.

leeperry
30th September 2011, 11:41
nice! an all-in-one solution to 10bit h264 and CUDA decoding http://forum.slysoft.com/images/smilies/agreed.gif

BTW, "high quality processing" equals to the former BSOD-feast "use DXVA2" on XP?

Also, the drop down menus don't work as expected on my XPSP3 box: http://thumbnails44.imagebam.com/15172/2ea2db151714766.jpg (http://www.imagebam.com/image/2ea2db151714766)

XRyche
30th September 2011, 11:53
This has probably been asked before (probably hundreds of times, at least.). Are there any plans to include colour controls for LAV? I currently use CoreAVC with madVR on MPC-HC solely because madVR has no colour controls (besides gamma calibration). Now my monitor can control the colour to a degree but controlling colour via the renderer (I don't think madVR will be updated anytime soon so......) or codec allows me to fine tune it to a greater degree.

nevcairiel
30th September 2011, 12:02
BTW, "high quality processing" equals to the former BSOD-feast "use DXVA2" on XP?

Yes. The tooltip also got a small hint that it may fail on XP.


Also, the drop down menus don't work as expected on my XPSP3 box: http://thumbnails44.imagebam.com/15172/2ea2db151714766.jpg (http://www.imagebam.com/image/2ea2db151714766)
Weird. Its a standard Windows Control. Did the one in LAV CUVID for the field order for example look ok?

Btw, turning off the 4:2:2 and 4:4:4 formats will cause it to downscale chroma should you ever actually play a 4:2:2 or 4:4:4 movie.
It does not hurt to keep them on, it'll always try to use the best matching format.

nand chan
30th September 2011, 13:02
This has probably been asked before (probably hundreds of times, at least.). Are there any plans to include colour controls for LAV? I currently use CoreAVC with madVR on MPC-HC solely because madVR has no colour controls (besides gamma calibration). Now my monitor can control the colour to a degree but controlling colour via the renderer (I don't think madVR will be updated anytime soon so......) or codec allows me to fine tune it to a greater degree.

What do you mean by color control, exactly? What is it you want to adjust?

Also, I'm of the strong opinion that the decoder should *not* mess with the video or do any post processing. The decoding should output the YV12 image that the source gives you after decoding, all post processing / conversion / color management / whatever should be done by extra filters.

roytam1
30th September 2011, 13:18
nice! an all-in-one solution to 10bit h264 and CUDA decoding http://forum.slysoft.com/images/smilies/agreed.gif

BTW, "high quality processing" equals to the former BSOD-feast "use DXVA2" on XP?

Also, the drop down menus don't work as expected on my XPSP3 box: http://thumbnails44.imagebam.com/15172/2ea2db151714766.jpg (http://www.imagebam.com/image/2ea2db151714766)

Seems to be Custom Theme issue.
With default theme it works properly.
http://i.imgur.com/JfpJp.png

BTW The default window font height vs specified font height causing the property page doesn't fully shown in rundll32 in CJK edition of Windows.

nevcairiel
30th September 2011, 13:20
Also, I'm of the strong opinion that the decoder should *not* mess with the video or do any post processing. The decoding should output the YV12 image that the source gives you after decoding, all post processing / conversion / color management / whatever should be done by extra filters.

While i agree with the general idea of separating those tasks, its not always as easy as one might think. Ignoring the obvious fact that its more work to write a separate filter, there are some other issues as well:

- "Dumb" players connect the decoder directly to the renderer, no post processor in between
- DirectShow adds a significant overhead in some cases (for example, 10bit YUV. The DShow format P010 is an interleaved format, while decoders and processors typically prefer planar - so you have to map it back and forth)
- Configuration for the end-user is more complex

I'm sure there are other Pros and Cons, but overall, it creates a whole load of new problems.

Short of some pixel format conversions (and of course HW deinterlacing, which you really cant separate effectively), i have yet stayed away from post-processing. I do have some plans to integrate at least software deinterlacing. On the other hand, the libavfilter library makes using its filters so easy, so filters like sharpen, denoise and deband would be very easily implemented. Creating a DirectShow component for that is much more involving, tbh.

I wish we were living in a perfect world where we could do everything properly .. but we don't..
For me, i usually am happy now if i separate those actions clearly in code, so that maybe one day they can be recycled into a proper separate filter. ;)

PS:
With color controls i assume he wants the typical hue/contrast/brightness controls.


BTW The default window font height vs specified font height causing the property page doesn't fully shown in rundll32 in CJK edition of Windows.

For some reason the window doesn't auto-resize when you open it via rundll. If you open it in a player its ok, i assume?

Its supposed to look like this, btw:
http://images.gammatester.com/pics/619a8176c98f5fcfef4579256f730dc8.png
The dropdown widget itself shows the current option, and the dropdown shows all available options without arrows or anything.

leeperry
30th September 2011, 13:32
Yes. The tooltip also got a small hint that it may fail on XP.
I don't get any tooltip :o

Weird. Its a standard Windows Control. Did the one in LAV CUVID for the field order for example look ok?
yup: http://thumbnails46.imagebam.com/15174/013ac5151730826.jpg (http://www.imagebam.com/image/013ac5151730826)

Btw, turning off the 4:2:2 and 4:4:4 formats will cause it to downscale chroma should you ever actually play a 4:2:2 or 4:4:4 movie.
It does not hurt to keep them on, it'll always try to use the best matching format.
got it, :thanks:

roytam1
30th September 2011, 13:37
While i agree with the general idea of separating those tasks, its not always as easy as one might think. Ignoring the obvious fact that its more work to write a separate filter, there are some other issues as well:

- "Dumb" players connect the decoder directly to the renderer, no post processor in between
- DirectShow adds a significant overhead in some cases (for example, 10bit YUV. The DShow format P010 is an interleaved format, while decoders and processors typically prefer planar - so you have to map it back and forth)
- Configuration for the end-user is more complex

I'm sure there are other Pros and Cons, but overall, it creates a whole load of new problems.

Short of some pixel format conversions (and of course HW deinterlacing, which you really cant separate effectively), i have yet stayed away from post-processing. I do have some plans to integrate at least software deinterlacing. On the other hand, the libavfilter library makes using its filters so easy, so filters like sharpen, denoise and deband would be very easily implemented. Creating a DirectShow component for that is much more involving, tbh.

I wish we were living in a perfect world where we could do everything properly .. but we don't..
For me, i usually am happy now if i separate those actions clearly in code, so that maybe one day they can be recycled into a proper separate filter. ;)

PS:
With color controls i assume he wants the typical hue/contrast/brightness controls.



For some reason the window doesn't auto-resize when you open it via rundll. If you open it in a player its ok, i assume?

Its supposed to look like this, btw:
http://images.gammatester.com/pics/619a8176c98f5fcfef4579256f730dc8.png
The dropdown widget itself shows the current option, and the dropdown shows all available options without arrows or anything.

Because 30px doesn't high enough to show 2 options.
But Yes if in GraphStudio and MPC-HC is shows correctly (but not in mplayer2).


- COMBOBOX IDC_HWACCEL,216,28,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_HWACCEL,216,28,75,36,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP


- GROUPBOX "Hardware Acceleration",IDC_HWACCEL_SETTINGS,208,7,135,182
+ GROUPBOX "Hardware Acceleration",IDC_HWACCEL_SETTINGS,208,7,138,182

andybkma
30th September 2011, 13:40
You should probably just complain to Blight because his Smart Play functionality is not as "Smart" as it claims. It does not function like DirectShow, yet it depends on DirectShow configuration. :)



Thanks, but I also could not open the .mpg files in GraphStudio as I mentioned which I do believe has nothing to do with Zoom Player?

I'll play with the installer again but I still think there's a prob with .mpg files due to the GraphStudio playback problem. BTW, would not play in G-Spot either

nevcairiel
30th September 2011, 13:45
Thanks, but I also could not open the .mpg files in GraphStudio as I mentioned which I do believe has nothing to do with Zoom Player?

I'll play with the installer again but I still think there's a prob with .mpg files due to the GraphStudio playback problem. BTW, would not play in G-Spot either

Like i said, don't turn the option off in LAV Splitter if you enabled it in the installer. :)

roytam1
30th September 2011, 13:57
Like i said, don't turn the option off in LAV Splitter if you enabled it in the installer. :)

You should put this in FAQ too. ;-)

nevcairiel
30th September 2011, 14:29
Because 30px doesn't high enough to show 2 options.

Weird that it shows properly in some players but not in others - and only on XP. Anyway i increased the size of the dropdowns, will commit the patch when i get home in half an hour or so.

jmonier
30th September 2011, 14:58
Windows 7, Zoom Player 7 Max

Installed newest LAV Filter .36 today. Had no choice because you now integrated H264 CUVID into it which I like very much :)

But unfortunately LAV Filter "broke" my MPEG-1 & MPEG-2 playback for files that have the .mpg extension.

You might try Zoomplayer 8:

http://forum.inmatrix.com/index.php?showtopic=13234

LAV Splitter is explicitly recognized with it's own profile.

clsid
30th September 2011, 19:28
With regard to the Overlay issue on XP. I noticed a difference in pin details compared to ffdshow.

ffdshow (diff in bold):
Filter : Overlay Mixer - CLSID : {CD8743A1-3736-11D0-9E69-00C04FD7C15B}

- Connected to:

CLSID: {EE30215D-164F-4A92-A4EB-9D4C13390F9F}
Filter: LAV Video Decoder
Pin: XForm Out

- Connection media type:

Video: YV12 768x480 (3:2) 23.98fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_YV12 {32315659-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 552960
cbFormat: 1152

VIDEOINFOHEADER:
rcSource: (0,0)-(720,480)
rcTarget: (0,0)-(720,480)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417083

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000081
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 720
dwPictAspectRatioY: 480
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 768
biHeight: -480
biPlanes: 1
biBitCount: 12
biCompression: YV12
biSizeImage: 552960
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 d0 02 00 00 e0 01 00 00 ..............
0010: 00 00 00 00 00 00 00 00 d0 02 00 00 e0 01 00 00 ..............
0020: 00 00 00 00 00 00 00 00 3b 5d 06 00 00 00 00 00 ........;]......
0030: 81 00 00 00 00 00 00 00 d0 02 00 00 e0 01 00 00 .............
0040: 00 00 00 00 00 00 00 00 28 00 00 00 00 03 00 00 ........(.......
0050: 20 fe ff ff 01 00 0c 00 59 56 31 32 00 70 08 00 ....YV12.p..
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0460: 00 00 00 00 00 00 00 00 33 00 8e 00 00 00 00 00 ........3......
0470: 10 03 15 00 10 03 15 00 00 00 00 00 00 00 00 00 ................

LAV
Filter : Overlay Mixer - CLSID : {CD8743A1-3736-11D0-9E69-00C04FD7C15B}

- Connected to:

CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Filter: ffdshow Video Decoder
Pin: Out

- Connection media type:

Video: YV12 768x480 (3:2) 23.98fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_YV12 {32315659-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 552960
cbFormat: 1152

VIDEOINFOHEADER:
rcSource: (0,0)-(720,480)
rcTarget: (0,0)-(720,480)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417083

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000081
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 3
dwPictAspectRatioY: 2
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 768
biHeight: -480
biPlanes: 1
biBitCount: 12
biCompression: YV12
biSizeImage: 552960
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 d0 02 00 00 e0 01 00 00 ..............
0010: 00 00 00 00 00 00 00 00 d0 02 00 00 e0 01 00 00 ..............
0020: 00 00 00 00 00 00 00 00 3b 5d 06 00 00 00 00 00 ........;]......
0030: 81 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 ...............
0040: 00 00 00 00 00 00 00 00 28 00 00 00 00 03 00 00 ........(.......
0050: 20 fe ff ff 01 00 0c 00 59 56 31 32 00 70 08 00 ....YV12.p..
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
03f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0460: 00 00 00 00 00 00 00 00 33 00 8e 00 00 00 00 00 ........3......
0470: 10 03 15 00 10 03 15 00 00 00 00 00 00 00 00 00 ................

nevcairiel
30th September 2011, 19:35
I doubt the aspect ratio makes a difference. Its probably caused by the attempt to dynamically reconnect to establish a proper media type. But i don't have XP, and the Win7 overlay mixer works fine.

clsid
30th September 2011, 19:40
Yes, the dynamic reconnect might be it. Would be nice if it could be fixed, because Overlay is quite popular on XP due to its low CPU usage. I can test builds on an old laptop if necessary.

Xaurus
30th September 2011, 21:17
Nev,

I recently switched from ffdshow audio to lav audio and experienced something strange.
The Big Lebowski Blu-ray - audio dropped completely out when Walter pulls the gun on that guy at the bowling place.

Okay so I pause - then unpause - then the audio returned... for 10 seconds, then it dropped out again.
I could continue this forever.. no audio - pause - audio returns - audio drops out - pause - audio returns - audio drops out... etc. etc.

Any idea here? I've switched back to ffdshow audio for now. :thanks:

nevcairiel
30th September 2011, 22:07
People should answer a bug reporting Quiz before being allowed on these forums.

- You assume i know which scene in that movie you're referring to. I don't. You know, we have timestamps for this.
- Does it happen everytime you hit that spot? What if you seek just past it?
- Are you using the ffmpeg decoder, or the ArcSoft DTS-HD decoder? Or even bitstreaming?

Its all in the details. Your post is basically like "My playback doesn't work, halp"

Xaurus
30th September 2011, 22:31
nev,

Never mind. I get no audio drop out with ffdshow so I'll keep it, saves us both the extra trouble. Thanks anyway.

TheShadowRunner
30th September 2011, 23:06
I'd really like to understand how the BBC Japan MKV I linked (http://www.megaupload.com/?d=A8BZORB1) last time is rendered at
12ms average when using CoreAVC 2.5.5 w/CUDA + madVR
versus twice that value at
23ms average when using LAV Video w/CUDA enabled + madVR
How could CUDA performance change so radically between the 2 decoders [on my system]?
The output pin is the same: Major Type: Video - Sub Type: YV12 Format: VideoInfo2 YV12 2048X1072, 12 bits
I use the latest nvidia 285.38 beta on XP SP3.
Any further hint is welcome.. I'd really fancy using LAV Video dec for everything!

Superb
30th September 2011, 23:08
nev,

Never mind. I get no audio drop out with ffdshow so I'll keep it, saves us both the extra trouble. Thanks anyway.

Don't be lame... give him the details so he'll be able to analyze/fix the issue... :/

XRyche
1st October 2011, 03:48
While i agree with the general idea of separating those tasks, its not always as easy as one might think. Ignoring the obvious fact that its more work to write a separate filter, there are some other issues as well:

- "Dumb" players connect the decoder directly to the renderer, no post processor in between
- DirectShow adds a significant overhead in some cases (for example, 10bit YUV. The DShow format P010 is an interleaved format, while decoders and processors typically prefer planar - so you have to map it back and forth)
- Configuration for the end-user is more complex

I'm sure there are other Pros and Cons, but overall, it creates a whole load of new problems.

Short of some pixel format conversions (and of course HW deinterlacing, which you really cant separate effectively), i have yet stayed away from post-processing. I do have some plans to integrate at least software deinterlacing. On the other hand, the libavfilter library makes using its filters so easy, so filters like sharpen, denoise and deband would be very easily implemented. Creating a DirectShow component for that is much more involving, tbh.

I wish we were living in a perfect world where we could do everything properly .. but we don't..
For me, i usually am happy now if i separate those actions clearly in code, so that maybe one day they can be recycled into a proper separate filter. ;)

PS:
With color controls i assume he wants the typical hue/contrast/brightness controls.





Yes I did mean the typical hue/contrast/brightness controls. I would use my gfx cards colour controls but it has absolutely no affect on madVR. Oh well, thanks for the explanation.

kennae
1st October 2011, 04:02
Hi

Firstly, thanks for all your hard work! Been using your work from the beginning and would love to get this final thing from bothering me:

The only problem I have in my full chain is that I can't get FFDshow Audio Processor to load. I need it to downmix audio after LAV Audio into 2.1 or 2.0.
I have the latest MPC-HC (3750), MadVR 0.74, FFDshow 3984, ReClock 1.8.7.7 and LAV Filters 0.36 installed. In MPC-HC I have disabled all built in stuff and have set LAV source, video and audio as preferred.

Last in the chain is FFDshow Audio Processor with only mixer enabled. Tried with the default merit and set as preferred, no dice.

I don't really know if I could just use LAV Audio and output what it outputs to Reclock and let my Pioneer AVR handle the channels, but I really dont know what it does to the signal. Like will I have "less" sounds than by downmixing in computer.

Please help with any suggestions you can. I bet this isn't fault of LAV Audio but still the right place to ask. If not, I wont bother you.

MORE TESTING:

I can't seem to get LAV Audio to load with the most common codecs. Only FLAC music files load LAV Audio automaticly, but any video I tried drops to some default decoder and FFDshow Audio Processor then loads (for the first time on my machine). Don't know what the heck to do so I will use FFDshow Audio Decoder for now since LAV Audio is somehow left behind every other filter or it's somehow messed up.

I tried re-installing the whole LAV pack, but nothing changed.

Is there a way to reset all the filters in WIN7 64bit and just install my stuff from ground up?

Thanks.

QBhd
1st October 2011, 05:26
Yes I did mean the typical hue/contrast/brightness controls. I would use my gfx cards colour controls but it has absolutely no affect on madVR. Oh well, thanks for the explanation.

Don't use the video color controls of your GPU... use the desktop color controls of the GPU.

QB

wanezhiling
1st October 2011, 05:51
win7 x86
GT240/GT520
GeForce 285.38 Driver
PotPlayer 1.5.29795(default setting)


I found almost no 1080i HDTV could reach 50/60fps with CUVID hardware decoder on my GT240/GT520......:(

But it doesn't happen on my another old graphic card 8500GT/GTS250.

Here is the sample.:thanks:
http://www.gokuai.com/f/jQb7m2n9dIbMhQ55

Sebastiii
1st October 2011, 07:17
nev,

Never mind. I get no audio drop out with ffdshow so I'll keep it, saves us both the extra trouble. Thanks anyway.

Don't get Nev wrong :)
But sure you fill all information to easy reproduce bug :)
I will try on "The Big Lebowski Blu-ray" :)
So please, can you screenshot the graph from grapstudio and also your LAV Audio Setting ?
Just to be sure to have the same setting :)
Thanks.

nevcairiel
1st October 2011, 08:24
I can't seem to get LAV Audio to load with the most common codecs. Only FLAC music files load LAV Audio automaticly, but any video I tried drops to some default decoder and FFDshow Audio Processor then loads (for the first time on my machine). Don't know what the heck to do so I will use FFDshow Audio Decoder for now since LAV Audio is somehow left behind every other filter or it's somehow messed up.

Make sure that ffdshow audio is configured to accept float audio, because thats what LAV Audio will output on most common movie formats. Additionally, I would force ffdshow to only use one output format, preferably float or int24.
Since you're having connection problems, i would suggest trying int24 first.

Xaurus
1st October 2011, 11:13
Don't get Nev wrong :)
But sure you fill all information to easy reproduce bug :)
I will try on "The Big Lebowski Blu-ray" :)
So please, can you screenshot the graph from grapstudio and also your LAV Audio Setting ?
Just to be sure to have the same setting :)
Thanks.
It's not easy to reproduce (unfortunately) because seeking to that first point it dropped doesn't make it drop. I suspect this could be something else than specifically this blu ray.

The audio is DTS-HD MA at 48kHz.

All codecs are checked in the formats tab, and in the audio settings tab only A/V sync is checked.

nevcairiel
1st October 2011, 12:27
Since the problem does not occur reproducible on that one spot, and pausing fixes it for a while, its quite unlikely that its actually a decoding problem.
Sounds rather like a incompatibility between the decoder and the audio renderer, but since your signature claims that you're using ReClock, thats unlikely as well. It could also be a problem with that disc and its timestamps, but i don't have that Blu-ray disc to check it out.

asasadad_1
1st October 2011, 12:34
here (http://samples.mplayerhq.hu/V-codecs/h264/PAFF/HDForum-06.04.04-01:05:30.ts) is a sample that lav splitter 0.36 doesn't output video, MPC-mpeg splitter works.

nevcairiel
1st October 2011, 12:48
here (http://samples.mplayerhq.hu/V-codecs/h264/PAFF/HDForum-06.04.04-01:05:30.ts) is a sample that lav splitter 0.36 doesn't output video, MPC-mpeg splitter works.

That is quite some broken file.
I recommend to report the problem to ffmpeg itself, since they are failing to detect the video stream properly.

http://ffmpeg.org/bugreports.html

nevcairiel
1st October 2011, 14:01
So, here is a quick test build of a new feature i implemented.
Specifically, this enables LAV Audio to convert between sample formats, which means that if you had issues with float audio before, you can now make it convert that to integer, by simply disabling float.

Note that i do not recommend turning off any output formats unless either your hardware or another DirectShow component does not work properly otherwise.
Specifically, there is no advantage in outputting audio that was decoded as 16-bit integer in any higher format, so disabling it will not increase quality at all!

Anyhow, here is the build:

http://files.1f0.de/lavf/LAVFilters-0.36-pcm.zip

VipZ
1st October 2011, 14:38
Nev is it possible to make VC1 in EVO use frame time correction? At present the intermediate state seems to be disabled for this, if set to enabled, works perfectly with LAV Video and MS DMO, with both EVR CP and MadVR.

The sample rate conversion seems to work well with DTS-MA included, not that I would use it :p

nevcairiel
1st October 2011, 14:48
Nev is it possible to make VC1 in EVO use frame time correction? At present the intermediate state seems to be disabled for this, if set to enabled, works perfectly with LAV Video and MS DMO, with both EVR CP and MadVR.


And i thought i turned it specifically off for EVO for some reason..
Anyway, its on again.

You're right that with LAV Video it works in both modes, but with the WMVideo Decoder it only works properly in one.

VipZ
1st October 2011, 14:58
And i thought i turned it specifically off for EVO for some reason..
Anyway, its on again.

You're right that with LAV Video it works in both modes, but with the WMVideo Decoder it only works properly in one.

For me the WMVideo and LAV Video was giving the same results when testing it. I tested in both MPC with FTC off only and PotPlayer with EVR CP and MadVR. Was testing with my sample, maybe putting in a disk would give better results.

kennae
1st October 2011, 15:07
I can output 16/24bit int and 16/24/32 float up to 96KHz to my amph and it supports them. So I don't think the problem lays there.
Thanks for the answer and I will try the test build and some other settings tomorrow when I have time off from work.

ajp_anton
1st October 2011, 15:11
Shouldn't color/brightness/contrast adjustment/correction be in the renderer and not the decoder or a separate filter?

Sebastiii
1st October 2011, 16:05
So, here is a quick test build of a new feature i implemented.
Specifically, this enables LAV Audio to convert between sample formats, which means that if you had issues with float audio before, you can now make it convert that to integer, by simply disabling float.

Note that i do not recommend turning off any output formats unless either your hardware or another DirectShow component does not work properly otherwise.
Specifically, there is no advantage in outputting audio that was decoded as 16-bit integer in any higher format, so disabling it will not increase quality at all!

Anyhow, here is the build:

http://files.1f0.de/lavf/LAVFilters-0.36-pcm.zip

Thanks :)

Xaurus
1st October 2011, 16:16
nev,

I can't open any file with the new test build. I tried changing the new options (16-bit, 24-bit etc.) but to no avail.

It seems it's the avutil-lav-51.dll that is crashing:
screenshot (http://home.halden.net/mordor/crash3.png)


What info do you need? I am on Win 7 Pro 64-bit.

nevcairiel
1st October 2011, 16:20
Did you replace all files, not just the .ax?

avutil really doesn't do all that much, a crash in it is rather unusual otherwise.

Xaurus
1st October 2011, 16:29
Did you replace all files, not just the .ax?

avutil really doesn't do all that much, a crash in it is rather unusual otherwise.
I installed all files except the splitter and video .ax , when I installed these too it works. Thanks.

nevcairiel
1st October 2011, 16:30
I updated ffmpeg yesterday, so a update of everything is required. :)

Sebastiii
1st October 2011, 16:38
Heya :) 16 bit and mediaportal audio renderer seems working nice :)
Thank you m8 :)

STaRGaZeR
1st October 2011, 17:09
http://forum.doom9.org/showthread.php?p=1529560#post1529560

Mosu's answer to this post is useful for the default/forced flags debate.

nevcairiel
1st October 2011, 17:13
http://forum.doom9.org/showthread.php?p=1529560#post1529560

Mosu's answer to this post is useful for the default/forced flags debate.

Thats apparently how most players interpret the flags, even though i don't. :)

Anyhow, thats probably how it'll work by default once i get around to re-writing the selection parts.

There is so much to do...

STaRGaZeR
1st October 2011, 17:34
Nice to hear that!

A little update about the seeking stuff we discussed some time ago: now that I've been using LAVS for a long period of time I've had to go back to other splitters because of that seek-and-freeze issue, it seems it affects everything, not only H.264 or long GOPs.

nevcairiel
1st October 2011, 18:14
I don't get why some people have so terrible experience with seeking. All i get is sometimes a bit slow seeking, audio starts, video takes 2-3 seconds to catch up, but otherwise, everything is fine. MKV seeking works very similar to how Haali does it, with one difference - Haali suppresses audio data until the video has caught up, not sure if that would cause so much issues.

Xaurus
1st October 2011, 19:39
As I suspected, there is an underlying problem with LAV audio somehow. I just started watching a normal tv show (mkv), then after ~18 minutes the sound dropped out completely. This is around the same time as the incident yesterday.
As I have no clue how to reproduce this other than watching something for ~18 minutes, I can't do much really. Other than switch back to ffdshow audio. Just thought I'd try your new build nev, with the bit options.

nevcairiel
1st October 2011, 19:47
It doesn't make much sense that it would cut out after playing for 18 minutes just like that. Too bad it takes so long to reproduce.
What is your ffdshow output set to? Does it output 16bit int, or float as well?

Xaurus
1st October 2011, 20:08
It doesn't make much sense that it would cut out after playing for 18 minutes just like that. Too bad it takes so long to reproduce.
What is your ffdshow output set to? Does it output 16bit int, or float as well?
I fully agree, it doesn't make any sense at all.

ffdshow:
Using Mixer (2/0/0 stereo) & Volume (volume boost) filters.
Pass-through: none marked
Output: 16-bit, 24-bit, 32-bit, 32-bit float.


Connected to Reclock which is set to Directsound (with WASAPI I get the "format not supported" blablabla):
Sampling rate: Same as input
Format: 16-bit

In the properties for Digital Audio (S/PDIF) in Windows I have set:
Sample rates: 44.1, 48, 88.2, 96
Default format: 2 channel, 16-bit, 48000 Hz


Sent through S/PDIF to a 2-channel DAC (Cambridge DAC magic, accepts 16-24 bit and 44.1 to 96 KHz sampling rate) which in turn is connected to my normal stereo amplifier.

pankov
1st October 2011, 23:14
I'd really like to understand how the BBC Japan MKV I linked (http://www.megaupload.com/?d=A8BZORB1) last time is rendered at
12ms average when using CoreAVC 2.5.5 w/CUDA + madVR
versus twice that value at
23ms average when using LAV Video w/CUDA enabled + madVR
How could CUDA performance change so radically between the 2 decoders [on my system]?
The output pin is the same: Major Type: Video - Sub Type: YV12 Format: VideoInfo2 YV12 2048X1072, 12 bits
I use the latest nvidia 285.38 beta on XP SP3.
Any further hint is welcome.. I'd really fancy using LAV Video dec for everything!
TSR,
how much memory does your Geforce 8500 have?
Can you check with GPU-Z (or other similar tool) if the GPU memory reaches the limit with LAV and not with CoreAVC?
Also, do check your GPU/Memory Controller/Video Engine Loads with both filters and see if you'll find a difference. Also look at the Core/Memory/Shader Clocks and see if they fluctuate with LAV and not with CoreAVC.

jmone
2nd October 2011, 00:10
Got a good one! In testing egur's SandyBridge accelerated FFDSHOW decoder, I found that you can use both the Intel IGP as well as a discreet GPU. I was testing the Intel 3000 IGP on my i7-2600K based HTPC in which I also have a GTX550Ti that I normally run. To get the Intel IGP HDMI output to work I had to disabled the other GPU in the BIOS. The "interesting" thing is while the nvidia control panel complains that the 550Ti is not installed, LAV CUVID can still access the GPU, eg it hands off the processing to the 550Ti, return the result to the IGP and outputs it just fine!

So from what I could tell with nvidia inspector, the 550Ti does nothing most of the time with the Intel GPU chugging along, then when LAV CUVID fires up for specific playback then away it goes (note: this was with LAV CUVID, I've not tested LAV Video with CUVID). For those changing low power this hybrid setup may be of interest.

nevcairiel
2nd October 2011, 00:12
Using a NVIDIA GPU without a display connected really does not have all that many advantages... the cuda interface brings it into the high performance mode, which will eat alot of power, and without a direct 3d interface, you will not get the best deinterlacing quality..

jmone
2nd October 2011, 00:23
...It also seemed to push up the rendering time in madVR slightly. I use P0 mode anyway as I find P8 is just not powerful enough to get stutter free 50 or 60fps playback in madVR. Thanks for the info on deinterlacing, are you saying that you don't get Vector Adaptive in such setups or that it is a completly different deinterlacing process? (FYI - I was only testing and will be going back to stock std 550Ti - who needs the complications!)

TheShadowRunner
2nd October 2011, 01:26
Hello Pankov, excellent idea. This 8500 has 512 MB of RAM.
Here are the results with GPU-Z.

CoreAVC + CUDA (average)
Memory Used: 237 MB
GPU Load: 42%
Memory Controller Load: 36%
Video Engine Load: 49%

LAV + CUDA (average)
Memory Used: 243 MB
GPU Load: 80%
Memory Controller Load: 29%
Video Engine Load: 50%

With LAV, even though there's a lot of skipped frames, the "GPU Load" never goes past 80%. No crazy spikes but constant 78-80%.
CoreAVC's CUDA "GPU Load" is also constant at 40-42% throughout the sample, and not a single skipped frame.

Andy o
2nd October 2011, 02:00
Don't use the video color controls of your GPU... use the desktop color controls of the GPU.

QB

I don't think that's a good idea at all, cause the changes applied by these cards can introduce banding. Better do it in the display itself, or if madshi could do it in madVR.

pankov
2nd October 2011, 02:50
TSR,
can you test the same video with ffdshow or MPC's or madVR's decoders ... or even CoreAVC or LAV Video Decoder without CUDA?
It'd be interesting to see the pure madVR GPU load.
btw
are you sure CoreAVC is actually using CUDA and not software mode?

XRyche
2nd October 2011, 02:59
I don't think that's a good idea at all, cause the changes applied by these cards can introduce banding. Better do it in the display itself, or if madshi could do it in madVR.

Agreed, the desktop controls do work using Digital vibrance, which is better (not quite where I wanted it) for video. The problem is it totally makes everything else very creepy and it's kind of a pain to manual adjust it every time i watch a video and then do something else. To my understanding madshi is on hiatus so I don't see that feature becoming a reality any time soon. Not to mention, it seems like it won't be a priority anyway because i haven't seen this suggested while searching the forums just a bit ago. Oh well , CoreAVC is relatively cheap (not as cheap as LAV lol) so I guess I'll stick with it for the time being.

TheShadowRunner
2nd October 2011, 03:27
TSR,
can you test the same video with ffdshow or MPC's or madVR's decoders ... or even CoreAVC or LAV Video Decoder without CUDA?

So, you mean, in software? I have a quad cpu @ 2.7ghz, it doesn't break a sweat and runs flawlessly with all decoders in software mode, LAV included of course.

Trying ffdshow or MPCs' DXVA isn't possible as madVR makes them fall back to software of course.

The mystery is only in the difference between LAV's CUDA and CoreAVC's CUDA.


are you sure CoreAVC is actually using CUDA and not software mode?

Yes 100%, green icon and 0-4%CPU.

jmone
2nd October 2011, 03:41
...It also seemed to push up the rendering time in madVR slightly.

I take that back. For x264 and VC1 the rendering time was under that required even for 60fps material (16.67ms) ...but averaging around 12ms there was not much overhead till it would start dropping frames. The killer however was interlaced MPG material as this could push rendering times above 20ms and I'd drop alot of frames especially on DVB-T broadcasts. As a comparison using just the 550Ti I get around 2ms.

I'm sticking with the 550Ti as it is!

QBhd
2nd October 2011, 04:00
I don't think that's a good idea at all, cause the changes applied by these cards can introduce banding. Better do it in the display itself, or if madshi could do it in madVR.

I wasn't saying it was a good idea... just that any control of a madVR image can't be done with GPU "video controls". The poster of this problem seems to have an issue with TV or PC levels. If his image is washed out, I am betting his RGB levels are not set properly.

BTW, The only thing I use in my "desktop color" controls is a slight drop in the gamma setting. It seems to do a better job with my hardware than adjusting the gamma settings in madVR. Really wish I could get my hands on a colorimeter and properly calibrate the display :)

QB

nevcairiel
2nd October 2011, 09:51
The mystery is only in the difference between LAV's CUDA and CoreAVC's CUDA.

You don't happen to have "High Quality Processing" checked, do you?

It would increase the GPU Load slightly, but doubling it is still somewhat unlikely.
The GPU itself is only used for deinterlacing and other post-processing tasks. Do you maybe have the edge enhancer and noise remover in the NVIDIA control panel active? It won't affect madVR, but it does affect my CUVID decoder.

pankov
2nd October 2011, 10:26
TSR,
I do want to see your GPU (not CPU) load in pure software decoding mode - just to have a reference how much madVR is taxing your GPU.

Volfield
2nd October 2011, 12:06
For me LAV CUVID and CoreAVC CUDA have the same GPU Load.

TheShadowRunner
2nd October 2011, 22:46
You don't happen to have "High Quality Processing" checked, do you?

No, these are my LAV settings (http://videoff7.free.fr/lavset.png).

The GPU itself is only used for deinterlacing and other post-processing tasks. Do you maybe have the edge enhancer and noise remover in the NVIDIA control panel active? It won't affect madVR, but it does affect my CUVID decoder.

I'm afraid not, either. :/
Everything in the nVidia panel is set to default, except "Use Inverse telecine" which I enabled. I tried to disable it, same results.

TSR,
I do want to see your GPU (not CPU) load in pure software decoding mode - just to have a reference how much madVR is taxing your GPU.

Oh sure, I get it.

So, with LAV in software mode, i get:
Memory Used: 164 MB
GPU Load: 32%
Memory Controller Load: 26%
Video Engine Load: 0%

(exact same results with CoreAVC in software mode.)

nevcairiel
2nd October 2011, 23:18
Here is two CUDA related test builds, to see if anything changes at all:

The first contains all libraries, because they changed since 0.36 release, the second is just an alternate LAVVideo.ax to apply onto the first.

1) http://files.1f0.de/lavf/LAVFilters-0.36-cuvid-sync.zip
2) http://files.1f0.de/lavf/LAVVideo-0.36-pure-cuda.zip

Let me know if either of these builds changes your GPU load.

TheShadowRunner
2nd October 2011, 23:32
Wow thank you very much nev, testing in progress!

Results are in:

with LAVFilters-0.36-cuvid-sync, I'm getting the exact same results as previous public build.

With LAVVideo-0.36-pure-cuda, it's actually much worse, with GPU Load at 98% and madVR average rendering at 36ms! (versus GPU Load at 80% and madVR rendering at 21ms on public LAV build).

So you altered something related to the source of the issue, for sure ;)

nevcairiel
2nd October 2011, 23:57
Interesting, i didn't expect the second to actually be slower..

Here is another, again use with the other files from the first.

http://files.1f0.de/lavf/LAVVideo-0.36-d3dflags.zip

nevcairiel
3rd October 2011, 00:09
And while we're at it, how about this one?

http://files.1f0.de/lavf/LAVVideo-0.36-moreflags.zip

TheShadowRunner
3rd October 2011, 00:10
Interesting, this LAVVideo-0.36-d3dflags gives me the lowest "GPU Load" on a LAV build, at 72%.
The madVR rendering came back to around 20 ms. It still gives me loads of dropped/delayed/glitches.

And back to CoreAVC CUDA for making sure I'm not crazy, "GPU Load" indeed at 41%

With LAVVideo-0.36-moreflags:

Mwaha, you're onto something,
rendering at 16 ms in madVR, "GPU Load" at 62% !

nevcairiel
3rd October 2011, 00:23
And a new one

http://files.1f0.de/lavf/LAVVideo-0.36-dummyhwnd.zip

Slowly, I'm running out of tricks though..

SamuriHL
3rd October 2011, 00:24
And a new one

http://files.1f0.de/lavf/LAVVideo-0.36-dummyhwnd.zip

Slowly, I'm running out of tricks though..

dummyhwnd? Seriously?? :D LOL!

TheShadowRunner
3rd October 2011, 00:32
With LAVVideo-0.36-dummyhwnd:

"GPU Load" went further down at 56%, madVR rendering stayed around the same as -moreflags at 16-17 ms.
I wonder how CoreAVC does it XD (41% GPU Load, rendering 11ms!)

nand chan
3rd October 2011, 04:13
And a new one

http://files.1f0.de/lavf/LAVVideo-0.36-dummyhwnd.zip

Slowly, I'm running out of tricks though..

Is it not possible to debug or reverse engineer the calls CoreAVC uses so you know what flags it has set, or something?

wanezhiling
3rd October 2011, 05:15
win7 x86
GT240
GeForce 285.38 Driver
PotPlayer & mpc-hc
evr(cp)
tested video:all 1080i hdtv,h264 & mpeg2,30fps


LAV + CUDA(High Quality Processing on)
Memory Used: 240 MB
GPU Load: 80%
Memory Controller Load: 27%
Video Engine Load: 32%
fps:47~53

LAV + CUDA(High Quality Processing off)
Memory Used: 241 MB
GPU Load: 32%
Memory Controller Load: 25%
Video Engine Load: 35%
fps:60

CoreAVC + CUDA (average) + hardware
Memory Used: 245 MB
GPU Load: 35%
Memory Controller Load: 28%
Video Engine Load: 31%
fps:60

Believe me,I tested this on three PCs with same graphic card - GT240.I got the same result.

nevcairiel
3rd October 2011, 08:42
With LAVVideo-0.36-dummyhwnd:

"GPU Load" went further down at 56%, madVR rendering stayed around the same as -moreflags at 16-17 ms.
I wonder how CoreAVC does it XD (41% GPU Load, rendering 11ms!)

Too bad D9 crapped out on me last night again, oh well.

Here is another build. I'm really running out of things to change now, though. :)

http://files.1f0.de/lavf/LAVVideo-0.36-autosched.zip


Believe me,I tested this on three PCs with same graphic card - GT240.I got the same result.
The GT240 is just too slow for HQ processing, is all.

ForceX
3rd October 2011, 09:40
Are these builds supposed to fall back to software decoders if HQ processing is turned on? And break compatibility with older CUDA?

TheShadowRunner
3rd October 2011, 09:43
Hi nev, so I put the -autosched build in the LAVfilters-0.36-cuvid-sync folder from yesterday.
Results: "GPU Load" is at around 60%, madVR rendering still at 16-17ms, that's clearly better than the "public" build so our testing is not going to waste.
Do not hesitate if you have more builds for me to try ;)

ForceX, not at all, we're just trying to find out the source of a CUDA performance difference between CoreAVC and LAV.

dead_screem
3rd October 2011, 10:18
Hi nev, so I put the -autosched build in the LAVfilters-0.36-cuvid-sync folder from yesterday.
Results: "GPU Load" is at around 60%, madVR rendering still at 16-17ms, that's clearly better than the "public" build so our testing is not going to waste.
Do not hesitate if you have more builds for me to try ;)

ForceX, not at all, we're just trying to find out the source of a CUDA performance difference between CoreAVC and LAV.

I noticed that in your settings screenshot you had YV12 enabled while NV12 disabled... would this be related? Because AFAIK NV12 is whats reccomended for use with hardware accel modes (DXVA/CUVID).
I think I also remember reading somewhere on msdn that NV12 is preferred over YV12 in general.

TheShadowRunner
3rd October 2011, 10:36
dead_screem, yes my early tests were using NV12, I've since switched to YV12 so the ouptut is exactly similar to CoreAVC's.
NV12 versus YV12 made virtually no difference in LAV.

I've just tried going back to NV12 with the -autosched build and same, GPU Load/madVR rendering times similar to YV12. (or maybe a tiny tiny bit faster, by a couple percents)

nevcairiel
3rd October 2011, 10:37
http://files.1f0.de/lavf/LAVVideo-0.36-d3dmt.zip

I modified the flags so that it should work with the HQ option as well as without, i hope it doesn't reduce the performance alot again.
I really don't know what else to do differently. Unless there are screws that i don't know that exist, i have turned all i have.

watchman
3rd October 2011, 10:42
Here is another build. I'm really running out of things to change now, though. :)

http://files.1f0.de/lavf/LAVVideo-0.36-autosched.zip


This build has really awesome performance. I'm able to use CUDA on my old 9600 GT to decode some 1080p 60fps benchmark videos, almost without dropped frames in madVR exclusive mode (just 2-3 frame drops sometimes).

Funny thing happened, though. My experience with HQ processing is opposite. There are tons of dropped frames with HQ unchecked and video looks more like slide show :) , but everything is fine and smooth when HQ is checked.

I'm running vista sp2, 9600GT as I mentioned and 270.61 drivers

TheShadowRunner
3rd October 2011, 10:46
(back in YV12)
Hehe it got better again with d3dmt ;)
Rendering is now on the low end of 16ms, it almost stopped madVR's "presentation glitches" completely (only had 2!).
GPU Load still around 60%.

Edit: tried HQ Processing for the fun of it (XP), it's completely fux0red ^^; (crazy artefacts, much slower)

nevcairiel
3rd October 2011, 10:50
This build has really awesome performance. I'm able to use CUDA on my old 9600 GT to decode some 1080p 60fps benchmark videos, almost without dropped frames in madVR exclusive mode (just 2-3 frame drops sometimes).

Funny thing happened, though. My experience with HQ processing is opposite. There are tons of dropped frames with HQ unchecked and video looks more like slide show :) , but everything is fine and smooth when HQ is checked.

I'm running vista sp2, 9600GT as I mentioned and 270.61 drivers

Actually, with the autosched build enabling HQ will probably fallback to software decoding.
Try the latest. :p

The 9600GT is probably not fast enough for 60p decoding



Edit: tried HQ Processing for the fun of it (XP), it's completely fux0red ^^; (crazy artefacts, much slower)
Yeah its known to just fail on XP..

watchman
3rd October 2011, 11:15
Actually, with the autosched build enabling HQ will probably fallback to software decoding.
Try the latest. :p

The 9600GT is probably not fast enough for 60p decoding


Yup, looks like there was the catch. Using d3dmt build, it's slide show with as well as without HQ processing.

Is it possible to keep that feature without affecting changes you did? I think it's really cool to try to use CUDA decoder and if HW is not suitable to decode video fluently, then use fallback to SW decoding.

nevcairiel
3rd October 2011, 11:20
That wasnt a feature. Activating HQ just always resulted in software decoding, because it was broken.

watchman
3rd October 2011, 11:39
That wasnt a feature. Activating HQ just always resulted in software decoding, because it was broken.

So may I change it to feature request, if you think that such a thing is possible without affecting decoder perormance? :) It would be really awesome to have something like this as I think that I'm not the only one who likes smart automatic SW logic. :p

nevcairiel
3rd October 2011, 11:43
(back in YV12)
Hehe it got better again with d3dmt ;)
Rendering is now on the low end of 16ms, it almost stopped madVR's "presentation glitches" completely (only had 2!).
GPU Load still around 60%.

Here is another try, i doubt it does anything, but who knows at this point.

http://files.1f0.de/lavf/LAVVideo-0.36-timerresolution.zip

Blight
3rd October 2011, 12:03
User report:
Using LAV Video decoder, Video artifacts seen when playing the sample file (see below) with the CUVID decoder disabled.
No artifacts with CUVID decoder enabled.

Description:
Look closely at about 3 seconds into the video when the video shows the laptop keyboard in use.

Sample:
http://www.sendspace.com/file/kx3uwi

nevcairiel
3rd October 2011, 12:19
User report:
Using LAV Video decoder, Video artifacts seen when playing the sample file (see below) with the CUVID decoder disabled.
No artifacts with CUVID decoder enabled.

Description:
Look closely at about 3 seconds into the video when the video shows the laptop keyboard in use.

Sample:
http://www.sendspace.com/file/kx3uwi

Thanks, i reported the problem to ffmpeg, its their thing to deal with now.
For reference: http://ffmpeg.org/trac/ffmpeg/ticket/528

wanezhiling
3rd October 2011, 13:06
The GT240 is just too slow for HQ processing, is all.

:eek:
What?too slow...I cant believe my eyes...
HQ processing performed excellently on my 8600gt and gt230m...
The gt240 is slower than 8600gt and gt230m???...God...:eek:

nevcairiel
3rd October 2011, 13:09
You see it for yourself, without HQ its the same performance as CoreAVC, but if you enable it, its too slow - obviously the GPU is just not fast enough,

TheShadowRunner
3rd October 2011, 13:30
Nev, with -timerresolution it's slightly worse, "GPU Load" around 70%, madVR rendering 18 ms.

wanezhiling
3rd October 2011, 13:33
...
gt240...:mad:

Chuck it in the bin!!!

clsid
3rd October 2011, 14:44
Since HQ is known to b0rk on XP and since afaik nobody has ever claimed it working on XP, wouldn't it be better to disable it completely on XP?

Would it be possible to set the default state of HQ option based on some GPU details? Then it could be disabled by default for older and low-end cards. I don't know what info can easily be retrieved in the filter, but I was thinking about for example VP version and clock speed.

nevcairiel
3rd October 2011, 14:50
VP version is not available, but its also irrelevant, as the HQ options purely depends on the 3D speed of the card.
What is available is the number of CUDA cores, which is some kind of measure that could be used.

But anyhow, I have alot more other things to do, such thins are only annoying without a real world benefit for most users. :p
The main problem is that those settings are not specific to the CUVID decoder, but instead will apply to all future hardware decoders (if there is some HQ mode that can be used)

wanezhiling
3rd October 2011, 15:29
the HQ options purely depends on the 3D speed of the card.
What is available is the number of CUDA cores, which is some kind of measure that could be used.


The 3D speed of gt240 is much faster than 8600gt/gt130m,and gt240 has 96 CUDA cores,8600gt/gt130m has only 32.

ForceX
3rd October 2011, 16:20
:eek:
What?too slow...I cant believe my eyes...
HQ processing performed excellently on my 8600gt and gt230m...
The gt240 is slower than 8600gt and gt230m???...God...:eek:
You can play 1080i 30 FPS content using the same settings as GT240 as in your 8600gt? 84% load is high but it should still give good playback in the gt240.

JarrettH
3rd October 2011, 18:49
The GT240 is a really good card. Was there a good direct replacement for it?

I mean single fan, low power, quiet

nevcairiel
3rd October 2011, 19:52
Nev, with -timerresolution it's slightly worse, "GPU Load" around 70%, madVR rendering 18 ms.

Another set of tests.

The first build is what i made on changes so far and commited to the repository, just to make sure it didn't get worse again.

The second adjusts another screw that i didn't try yet.

http://files.1f0.de/lavf/LAVVideo-0.36-git.zip

http://files.1f0.de/lavf/LAVVideo-0.36-delay4.zip

TheShadowRunner
3rd October 2011, 21:29
...and the results!

With -git, "GPU Load" is around 60% and madVR rendering at 17~ms. "Presentation glitches" still happen.
that's already better than previous public build, great.

With -delay4, "GPU Load" decreased further, now about 55%. Rendering times still 17ish ms, presentation glitches happen no more, not a single one!
Best build so far ;)

Mixer73
4th October 2011, 00:15
The 3D speed of gt240 is much faster than 8600gt/gt130m,and gt240 has 96 CUDA cores,8600gt/gt130m has only 32.

Does the GT240 have more power saving functions than the 8600GT? Is clocking down a problem?

Also Nev I had struggled to get perfect playback on my system so I clean formatted and have almost nothing installed now, just PotPlayer and Lav Filters, and I gotta say this is a really elegant product for someone who wants to have as little installed as possible.

Much kudos. Especially as its not even a version 1 yet ;)

wanezhiling
4th October 2011, 00:53
Nev,maybe I should lend you my gt240. :p

wanezhiling
4th October 2011, 00:57
Does the GT240 have more power saving functions than the 8600GT? Is clocking down a problem?


No...

"The GT240 is just too slow for HQ processing, is all.":rolleyes:

Mark_A_W
4th October 2011, 01:37
So, here is a quick test build of a new feature i implemented.
Specifically, this enables LAV Audio to convert between sample formats, which means that if you had issues with float audio before, you can now make it convert that to integer, by simply disabling float.

Note that i do not recommend turning off any output formats unless either your hardware or another DirectShow component does not work properly otherwise.
Specifically, there is no advantage in outputting audio that was decoded as 16-bit integer in any higher format, so disabling it will not increase quality at all!

Anyhow, here is the build:

http://files.1f0.de/lavf/LAVFilters-0.36-pcm.zip


Thanks - this will be useful for me, as Convolver Filter only accepts 16 bit or 32 bit float (not 24 bit).

Adding channel delay would completely remove my need for ffdshow audio!

Cheers

Mark

asasadad_1
4th October 2011, 02:41
deinterlacing in LAV seems slightly worse than CoreAVC.

http://i56.tinypic.com/5ul2bn.jpg

nevcairiel
4th October 2011, 06:46
Looks like a mbaff file that wasn't properly detected as actually being interlaced. Try checking the "force deinterlacing" option. I can only imagine that the "Aggressive" checkbox does something similar to the force option.
I also didn't think CoreAVC was actually deinterlacing itself, isn't it just flagging the interlace flags to the renderer to handle it?

dead_screem
4th October 2011, 06:51
I also didn't think CoreAVC was actually deinterlacing itself, isn't it just flagging the interlace flags to the renderer to handle it?

CoreAVC has a few deinterlacing options. Weave, Single field, Bob and Hardware. The "Hardware" setting is what passes the Direct Show flags on to the renderer.

nevcairiel
4th October 2011, 06:58
Thats what i thought. Weave, Single field and Bob aren't worth calling deinterlacing, anyway.
I imagine that the "Aggressive" mode will then force those flags on all frames, no matter if the decoder indicates interlaced or not.

dead_screem
4th October 2011, 07:02
Thats what i thought. Weave, Single field and Bob aren't worth calling deinterlacing, anyway.
I imagine that the "Aggressive" mode will then force those flags on all frames, no matter if the decoder indicates interlaced or not.

from the help,

Aggressive - in addition to SEI messages and POC numbers, assume the source is interlaced if any interlaced coding tools are used (MBAFF, PAFF)

So I guess even if the stream is flagged MBAFF progressive, this will force CoreAVC to assume MBAFF interlaced. While normal progressive content is unaffected.

nevcairiel
4th October 2011, 07:03
I see. I suppose thats a safer way then forcing it on everything.

asasadad_1
4th October 2011, 09:01
I enable "force deinterlacing" option,doesn't seem better.


http://i51.tinypic.com/dvkdua.jpg

nevcairiel
4th October 2011, 09:20
Can you upload a sample of that?

asasadad_1
4th October 2011, 11:08
Can you upload a sample of that?

that sample is posted by wanezhiling A few pages before.
http://www.gokuai.com/f/ulI9o5384F7MUe3D


http://i56.tinypic.com/o109ko.jpg

pankov
4th October 2011, 11:21
asasadad_1,
the sample plays perfectly fine here.

what's your video card?

betaking
4th October 2011, 11:44
asasadad_1,
the sample plays perfectly fine here.

what's your video card?

plays perfectly fine too!

asasadad_1
4th October 2011, 11:58
asasadad_1,
the sample plays perfectly fine here.

what's your video card?

I played that sample in mpc-hc,paused-play-go to-frame(3118, 59.940),how about the image?
btw,my video card is Geforce 8500GT,but no problem with CoreAVC.

http://i55.tinypic.com/2dcg9ky.jpg

asasadad_1
4th October 2011, 12:18
here is CoreAVC,same frame as above。

http://i52.tinypic.com/10yo303.jpg

ForceX
4th October 2011, 12:30
That doesn't seem like a deinterlacing issue, more like decoder is totally failing. Even with Weave with CUVID or non-cuvid decoder and Haali's renderer I don't get a messed up pic like that. Are you sure CoreAVC is actually using CUDA acceleration? Does turning off the Aggressive box or setting it to Weave do anything?

naoan
4th October 2011, 12:31
I'm having com surrogate error when opening folder with fraps recorded video in explorer.

here's the windows error log :

Problem signature:
Problem Event Name: APPCRASH
Application Name: DllHost.exe
Application Version: 6.1.7600.16385
Application Timestamp: 4a5bca54
Fault Module Name: LAVVideo.ax
Fault Module Version: 0.36.0.0
Fault Module Timestamp: 4e8493f0
Exception Code: c0000094
Exception Offset: 000000000000594b
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: d922
Additional Information 2: d92207d2a4a1b409e3a2744294fff7df
Additional Information 3: 926c
Additional Information 4: 926c967ce4a735d8dc23ea60fea415d7

Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt

CruNcher
4th October 2011, 13:16
I played that sample in mpc-hc,paused-play-go to-frame(3118, 59.940),how about the image?
btw,my video card is Geforce 8500GT,but no problem with CoreAVC.

So it plays normal but you get that problems only when seeking directly compared to CoreAVC ?
That would be a accurate seek issue then and that's quiet possible to be more stable in CoreAVC i guess :)
FFmpeg is generally not suited for such frame accurate seeking (playback ok, everything that goes into precision editing no go), there is this project https://github.com/lbrandy/ffmpeg-fas
http://libav-users.943685.n4.nabble.com/Frame-accurate-seeking-on-H-264-video-streams-td946549.html

In those regards i wish Donalds Parser would find it's way into Lav Splitter it's so damn accurate :)

Yep i get exactly the same artifact issues also with ffdshow-quicksync when using the goto function of MPC-HC you just have to hit the wrong frame and boom ;)

CoreCodec cares a lot about this as they are used in such editing scenarios and need to be precise as much as possible for their clients, even in formats that are not really designed for editing @ all.

Though their is some stuff going on in FFmpeg with a Seek API it might be getting better in the future so :)

ForceX
4th October 2011, 13:40
It is not an FFmpeg issue if he's using CUVID.

I don't really watch interlaced material, but the only time I remember seeing corruption like that is when using madVR decoder to decode an interlaced h.264 file, but amusingly, the corruption only happened arbitrarily when I seeked. It'd give messed up picture like that and continue until I seek again.

Actually I just reproduced it with this sample: http://www.mediafire.com/?njnk9zijvq23m6i with LAV Video, but only using software mode. Can't reproduce using asasadad_1's file, though.

nevcairiel
4th October 2011, 14:04
To increase seeking speed i don't send frames through the deinterlacer if they have a negative frame time (iow. before the seek point). This can mean that the temporal information for the deinterlacer is just not present, and it results in those artifacts.

I can certainly try to lift that restriction, but i don't consider frame accurate seeking important. I write software for playback, not for editing. Sorry. :p

Actually I just reproduced it with this sample: http://www.mediafire.com/?njnk9zijvq23m6i with LAV Video, but only using software mode. Can't reproduce using asasadad_1's file, though.

sounds like a general ffmpeg problem with receiving the fields in the wrong order or something.

CruNcher
4th October 2011, 14:10
It's more complex then that in Lav Splitter, Lav Video ffmpeg plays a essential role here :)

nevcairiel
4th October 2011, 14:12
If all he changed is LAV Video (in CUVID mode) with CoreAVC (also in CUDA mode), and not changing anything else, how does ffmpeg matter? :P

CruNcher
4th October 2011, 14:19
you have 2 options to implement parser and decoder or a good mix of both, as CoreCodec can't control all the time the parser side (except with Halli) and H.264 gives you a convenient way and tools over the bitstream they implemented it on the decoder side (before it reaches the DSP nvcuvid) The behavior is always consistent doesn't matter if you use DXVA,CUDA or Software :)

Calibro
4th October 2011, 15:54
Hi

I recently discovered this promising splitter+decoders but am having difficulties making it work. I just can't get MPC-HC to connect to LAV Splitter or the LAV Audio Decoder :O
I have followed this guide "http://www.mediasmartserver.net/2011/06/30/guide-setting-up-lav-filters-mpc-hc-for-all-your-splitter-and-audio-needs/" but without luck. I'm a noob at this, but would think that I should be able to at least get the splitter/decoders working.
After encountering this problem I started tryng other decoders than AC3Filter (which I've always used), such as FFDShow Audio Decoder, but MPC-HC keeps igoring even these attemps and defaults back to some "AVI<->AC3/DTS" when AC3Filter is unchecked?? When I change which filters to use I add them to the external filters section in MPC-HC and set them as prefer. But this refuses to do the trick.

Please enlighten a lost sole :)

To note: I want to use the Audio decoder to bitstrem/decode DTS/DTSHD to my receiver. I have a Geforce GT 430 video card, and I get bitstreaming to work perfectly in TMT5.

naoan
4th October 2011, 16:06
Just realized that seeking MKV files (haven't tested other) is very slow with lavsplitter...

SEt
4th October 2011, 16:41
I think hardware deinterlacer uses only 1-2 previous frames, so sending them on seek should not affect speed in noticeable amount.

naoan
4th October 2011, 16:53
No uh, I don't have nvidia card so it's all softwares. Also the slowness came with very excessive cpu usage, as can be seen here :

with lavsplitter :
http://i.imgur.com/dtIFb.png

with haali :
http://i.imgur.com/2aoWC.png

using same video (reencoded fraps footage, mkv container using x264)

is this a bug or by design? :confused:

STaRGaZeR
4th October 2011, 17:27
No, there are seeking issues and nevcairiel already knows about them. But if you have a small sample where the problem is easily reproducible, please share it :)

naoan
4th October 2011, 17:33
Well sure, just give me a minute, but are there easy way to enable/disable splitter? mpc-hc external filters doesn't seem to be working for it.

Calibro
4th October 2011, 17:37
but are there easy way to enable/disable splitter? mpc-hc external filters doesn't seem to be working for it.

+1

I can't even get Lav Splitter to work no matter what I try.

How do I disable Haali and enable Lav?

kennae
4th October 2011, 17:42
Why do I think 80% of the "problems" people have is about seeking? Seeking works just fine. Or is it such a big deal if it takes a second? Maybe it would be if people had to use seek all the time every day but it's a feature that shoudn't be needed usually. When you close MPC-HC it saves where you were in the file and starts from there the next time you open MPC-HC.

Maybe I just don't get AD/HD, ADD, people who has to seek all the time for some weird reason.

Just focus on real problems and new features is my opinion.

naoan
4th October 2011, 17:53
Why do I think 80% of the "problems" people have is about seeking? Seeking works just fine. Or is it such a big deal if it takes a second? Maybe it would be if people had to use seek all the time every day but it's a feature that shoudn't be needed usually. When you close MPC-HC it saves where you were in the file and starts from there the next time you open MPC-HC.

Maybe I just don't get AD/HD, ADD, people who has to seek all the time for some weird reason.

Just focus on real problems and new features is my opinion.

It takes about 5 to 10 second upward or so actually. It doesn't affect all files, and it could be considered a bug since haali doesn't exhibit this behavior, it's also a big deal if you're working on editing video.


Anyway, I'm uploading the affected file to mediafire, but it would be long... since I have a very slow connection.

Strange thing I noticed : This is a WIP video with no audio, but once I mux the audio, seeking works fine. :confused:

nevcairiel
4th October 2011, 17:55
Thanks for uploading the problematic file, make sure to let us know when its done, and i'll look into it soon.

Calibro
4th October 2011, 18:35
Ok so I've gotten the Audio filter working now :)
How do I decode a DTSHDMA-track and send as PCM to my receiver?

Thanks for this amazing decoder btw =)

naoan
4th October 2011, 20:39
Here's the affected video : http://ifile.it/g2tijvn

I have other videos (with no audio) which is affected by the seeking bug as well but this particular one is noticeable slower/more cpu intensive.

nevcairiel
4th October 2011, 20:51
Here's the affected video : http://ifile.it/g2tijvn

I have other videos (with no audio) which is affected by the seeking bug as well but this particular one is noticeable slower/more cpu intensive.

Thanks, i'll be working on some seeking improvements soon.

naoan
4th October 2011, 21:00
Also, another bug report : fraps video support is borked (crashing mpc-hc & explorer) on 0.36, was fine on 0.35. Thought you might want to know. :)

nevcairiel
4th October 2011, 21:03
Also, another bug report : fraps video support is borked (crashing mpc-hc & explorer) on 0.36, was fine on 0.35. Thought you might want to know. :)

But thats bad news, why would i want to get bad news? ;)

Actually, i just tried, and i can't reproduce any issues. I suppose it may have been fixed already again...
Maybe try with this build?
http://files.1f0.de/lavf/LAVFilters-0.36-cuvid-sync.zip

naoan
4th October 2011, 21:16
Maybe think of it as early bug report :p

Yes, it's not crashing and able to show thumbnail on explorer, but it still crashes on mpc and potplayer.

http://i.imgur.com/Xt7ac.png
http://i.imgur.com/TnsgY.png

nevcairiel
4th October 2011, 21:41
I found the issue, i think. Thanks for the report.

Here is an updated build:

http://files.1f0.de/lavf/LAVFilters-0.36-38-g5f94c09.zip

naoan
4th October 2011, 22:25
That was fast :eek:

Yeah, it's working fine now, thanks! :thanks:

rica
4th October 2011, 22:41
Hi nev,
as far as i remember Lav video didn't include lav CUVID feature on previous versions?
On the other hand MadVR doesn't support DXVA decoding yet.
In this case if i use lav splitter > Lav Video > MadVR, what happens?
Does it mean MadVr will not use CUDA feature of Lav Video?
A little bit confused.

In other words: Are Lav Cuvid and Lav Video still different decoders? Or they are same anymore?

TheShadowRunner
4th October 2011, 23:50
rica, that's the beauty of CUDA, it's active even when using madVR or any other renderer or even when having vsfilter in the graph.
DXVA doesn't allow that, but CUDA does!

LAV CUVID has just been integrated in LAV Video.

rica
5th October 2011, 00:46
rica, that's the beauty of CUDA, it's active even when using madVR or any other renderer or even when having vsfilter in the graph.
DXVA doesn't allow that, but CUDA does!

LAV CUVID has just been integrated in LAV Video.

Thanks dude!

hoborg
5th October 2011, 13:13
Deleted.
My mistake :)

CruNcher
5th October 2011, 13:42
rica, that's the beauty of CUDA, it's active even when using madVR or any other renderer or even when having vsfilter in the graph.
DXVA doesn't allow that, but CUDA does!

LAV CUVID has just been integrated in LAV Video.

You can do it via DXVA1/2 to see Potplayer (DXVA2) or VLC (DXVA2) also roozhous DXVA copy ffdshow test implementation (DXVA1), it wont just be the performance of it as you have the copy overhead same as for nvcuvid or MediaSDK :) if you want the uber Performance (lightest on resources,maximum power saving) their is no way around DXVA1/2 (direct no copy) on all Windows :).
If you want additional flexibility and render independence on all Windows versions you can use either the Hardware specific APIs (most of the time best choice) Nvidia (nvcuvid), AMD (OpenVideo) or DXVA1/2 (yes 1 seems also possible see roozhous test implementation) Intels MediaSDK is the only one bound to a NT 6 requirement. Though as said all the Hardware solutions have drawbacks you need a Software Decoding fallback to compensate those (also depending on the System Setup and Playback Scenario itself) :)
Now if you really clever you go 1 step further ;) and use for 8 bit and supporting streams (reference limit) all the time DXVA (supporting renderer with Hardware PP and additional PP possibility either via Software or PS) and then go down as with the Streams requirements so for 10 bit you chose the Software route (MadVR,EVR-CP) and for problematic DXVA you decide between the Vendor API and Software route :)
Though no Player today implements it this efficient and dynamic ;)

nand chan
5th October 2011, 17:47
Now if you really clever you go 1 step further ;) and use for 8 bit and supporting streams (reference limit) all the time DXVA (supporting renderer with Hardware PP and additional PP possibility either via Software or PS) and then go down as with the Streams requirements so for 10 bit you chose the Software route (MadVR,EVR-CP) [...]

ffdshow can do this if I'm not mistaken, it can use DXVA (with its own renderer) for 8-bit content and software (libav) for 10-bit etc.

PeQuE
5th October 2011, 18:10
Hi nevcariel,

I've uploaded a video (in fact, recorded mpeg2 TV .ts) that Lav Video is failing at deinterlacing from time to time.

http://dl.dropbox.com/u/15222696/MP_20111005_18-05_Bar%C3%A7a%20TV_Temps%20de%20joc.%20La%20Lliga.ts

As a side comment, Win7 MS DVB included codec for MPEG2 is also failing the same way, while Cyberlink (9 & 11) Video/SP Decoder is doing it well.

Hope you can take a look.

Thanks a lot!

nevcairiel
6th October 2011, 07:09
LAV Filters 0.37

LAV Splitter
- Improved handling of failures on the output pins
- Improved VC-1 in EVO timestamps

LAV Audio
- Added support for dynamic channel count changes in AAC
- Implemented support for sample format conversions
- Implemented Audio Delay options
- Disabled the WMA codecs by default
- Improved Bitstreaming data flow

LAV Video
- Fixed cropping of VP6 video
- New SSE2 YUV420 -> YUV422 converter
- Performance enhancements in the CUVID decoder on some systems
- Fixed playback with the XP Overlay Mixer
- Fixed a crash when decoding RGB video (Fraps, etc)


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.37.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.37.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.37-x64.zip)

Some random remarks:
- LAV Splitter will now no longer completely stop playback if for example audio decoding fails, instead it'll just stop sending audio, but keep video going.
- The AAC channel changes are only known to work with LAV Splitter, because of the special way the AAC ADTS metadata has to be preserved and not stripped off like all other splitters do it.
- WMA is now off by default because the decoders are behaving rather oddly, and i would suggest using the MS decoders for it.
- The XP Overlay Mixer seemed to work for me, as well as some other guy, but who knows if it still needs more fixes.

Anyhow, i'll be out until Sunday, so behave! :)
Have fun with these.

PeQuE
6th October 2011, 07:22
Audio Delay!!! I think it's time to let Lav Audio go into my system finally! :)

Thanks a lot.

PD: I'll repost above video when you come back then... I'm sure it will go deep in the thread history very quicky.

nevcairiel
6th October 2011, 08:07
I downloaded and stored it somewhere, i just have to remember to check it. :)

Chillgurke
6th October 2011, 08:28
Thx for this Update ....

naoan
6th October 2011, 08:33
I really hate to inform you this, but lavsplitter still more or less the same as the one before, pausing for a while with high cpu usage for video with no audio (like on the sample that I uploaded before).

No problem with lavvideo and audio though :D

nevcairiel
6th October 2011, 08:36
Did you read anything in the changelog regarding seeking? No? Right! :)

I dont have the resources to fix everything immediately, but it is high on the list and should be handled some time soon.

naoan
6th October 2011, 08:36
Seems I misunderstood this


- LAV Splitter will now no longer completely stop playback if for example audio decoding fails, instead it'll just stop sending audio, but keep video going.


Sorry :(

nevcairiel
6th October 2011, 08:40
That only applies if there is actually audio that can fail. :)

PeQuE
6th October 2011, 10:27
I downloaded and stored it somewhere, i just have to remember to check it. :)
Ok.Then I won't bother you again after holiday... :P

BTW, I'm very curious in what happens to that piece of video.

SEt
6th October 2011, 10:57
Audio delay in decoder is wrong. It's video renderer's job to compensate for display lag.

nevcairiel
6th October 2011, 11:02
Name one renderer that does it. :P

Besides, most of the lag is introduced outside of the pc, which means you need to configure it anyway, and delaying audio is what people expect to do, not change it in the video renderer. Its not like its a complicated feature, it just adds a offset to the timestamps.

SEt
6th October 2011, 11:15
At least mine own renderer does it.

You expect user to apply the delay in all audio decoders and change everything if output is redirected to other screen? Not nice at all.

I thought your stance was "do it right regardless of existing broken code". >_>

PeQuE
6th October 2011, 11:24
@SEt, you're right. ALL my audio needs 150 ms of delay to match video, due to image processing inside my Samsung Led TV, so best would be to be able to configure it regardless of the audio decoder used (in renderer, obviously)... but nevcariel also has it... There's no popular audio renderer that you can apply a delay to.

nevcairiel
6th October 2011, 11:24
No-one forces you to use it, if another component does it for you. :)

The point is, that feature does not hurt anything, even if its not the best way to handle it. Its like 4 lines of code (excluding options), and people want it because their other components can either not do it, or cannot be exchanged by something that can, so i don't see the harm.
The quote you posted does apply, however not doing something extremely simple like this just because is also silly.

kennae
6th October 2011, 12:23
Still cant use LAV Audio, no idea why. Got it registered and even used the installer. It is the only one in MPC-HC's filter list but still FFDshow Audio Decoder comes and rules LAV out. I even have set FFDshow's merit to low in it's own settings. Cant think any reason it does this. I bet it's not your filters fault, just saying.

YES!! Got it working at last! I dont know how, but I removed ffdshow audio decoder and processor from the list, then opened file and lav audio got loaded. After that put audio processor back and now I finaly have lav audio as decoder and ffdshow audio processor only for mixer. No idea why it was this hard. I have tried all these before but now it just worked. Damn i'm happy! :)

roytam1
6th October 2011, 14:14
Still cant use LAV Audio, no idea why. Got it registered and even used the installer. It is the only one in MPC-HC's filter list but still FFDshow Audio Decoder comes and rules LAV out. I even have set FFDshow's merit to low in it's own settings. Cant think any reason it does this. I bet it's not your filters fault, just saying.

YES!! Got it working at last! I dont know how, but I removed ffdshow audio decoder and processor from the list, then opened file and lav audio got loaded. After that put audio processor back and now I finaly have lav audio as decoder and ffdshow audio processor only for mixer. No idea why it was this hard. I have tried all these before but now it just worked. Damn i'm happy! :)

Normally if you want to use other (Video/Audio) decoder than ffdshow, you have to change the merit to "Normal" in ffdshow.