View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
ikarad
8th November 2011, 19:28
DXVA does do IVTC, kind of, but with limitations. There are 2 key problems with DXVA IVTC, from what I can see:
(1) The current VMR, EVR and madVR implementations of DXVA deinterlacing "blindly" trust the video bitstream flags. That works well for some DVDs/broadcasts, but not for all. The better solution would be to distrust the flags. This is currently not done by any renderer using DXVA, as far as I can say. I might implement that in madVR in a future version.
(2) There's no support for decimation in DXVA1/2, so the output will be 60p, not 24p. I've seen that there may be some sort of support for frame rate changes and maybe decimation in DXVA-HD, but I'm not 100% sure.
Anyway, this is probably a bit out of topic here, so let's not let get this into a lengthy discussion.
Thanks.
The problem is that ivtc without decimation is very bad.
Do you expect to add decimation and ivtc filter in madvr like decomb ou tivtc filter with avisynth?
Without a IVTC filter with decimation, I must always use ffdshow for interlaced movies
nevcairiel
8th November 2011, 19:29
Without a IVTC filter with decimation, I must always use ffdshow for interlaced movies
That line really makes no sense whatsoever. If you decimate a interlaced movie, the results will probably be kinda funny.
ikarad
8th November 2011, 19:31
That line really makes no sense whatsoever. If you decimate a interlaced movie, the results will probably be kinda funny.
Although it's very good (or maybe I misundertsanding what means decimation).
Using decimation for interlaced movies is very good (that allow to have the original 24p and not a bad 30p).
I use Decomb filter with decimate (decimate allow to have 24p instead of 30 ip) in avisynth with ffdshow.p instead of
Maybe I misunderstanding what means decimation for madshi.
nevcairiel
8th November 2011, 19:34
Using decimation for interlaced movies is very good
No, its not. Interlaced movies are meant to be watched at 50p or 60p.
What you mean are telecined movies, it has nothing to do with interlaced movies at all.
ikarad
8th November 2011, 19:35
No, its not. Interlaced movies are meant to be watched at 50p or 60p.
What you mean are telecined movies, it has nothing to do with interlaced movies at all.
Sorry, I speak about telecined movies (I never had interlaced movie as you described) .
But telecined and interlaced is not the same thing in english?
In french, it means the same thing. We say "entrelacé" for telecined movies and interlaced movies.
nevcairiel
8th November 2011, 19:38
Interlaced and telecine is not the same, in any language. If your language does not have a word for it, then use the english word.
IVTC stands for "Inverse Telecine". It has nothing to do with deinterlacing, its a completely different process.
ikarad
8th November 2011, 19:40
Interlaced and telecine is not the same, in any language. If your language does not have a word for it, then use the english word.
IVTC stands for "Inverse Telecine". It has nothing to do with deinterlacing, its a completely different process.
Thanks.
It's a problem of language in french.
one question: Can I expect a IVTC filter integrated in lav filter to avoid to use ffdshow?
PeQuE
8th November 2011, 22:05
I answered you before on that video. Its just a broken encode. Half of the frames are marked progressive - or at least seem to be.
I still have some small things to check, but all in all it doesn't look good.
I could try to offer "aggressive" deinterlacing, which means if MPEG2 is marked as interlaced, it would always treat all frames as interlaced.
Sorry. I didn't see your answer. Sorry again.
I'm not an expert, but I was sure our broadcasters here in Spain are sending something closer to just crap that anything else... I have not a single problem watching any foreing sat channel using my HTPC, while watching almost any dvb-t Spain channels with a minimum of quality has been a very difficult goar for many years...
So, thanks in advance for anything you can do to try to handle that little "crap" inside your decoder. Seems good to treat as interlaced anything marked so, even with progressive frames inside.
Thanks nevcariel. I'll try any new release, hoping to see that new feature implemented.
rica
8th November 2011, 22:32
Hi nev.
Normally pcm files muxed to m2ts need a decoder while they don't need any decoder when they are muxed into an mkv container.
I can directly connect those PCM_mkv files to ReClock via Haali or MPC matroska splitter and no issues.
But when i use Lav Splitter, even directshow automatically connects the audio pin to ReClock (btw ReClock is configured to bitexact streaming see: http://forum.doom9.org/showpost.php?p=1534720&postcount=188) i get this popout and no sound at all:
http://img827.imageshack.us/img827/2678/notsupported.png (http://imageshack.us/photo/my-images/827/notsupported.png/)
And i need to use a decoder like lavaudio or ffdshow.
Here is a test file:
96_24 pcm mkv:
http://www.mediafire.com/?het2xcoug60hvni
Thanks in advance.
Skwelcha
9th November 2011, 01:45
i don't know if its just me, but i cant play TrueHD tracks anymore if they are in a mkv container. There are no problems in m2ts container, tried LAV and Haali as the Splitter and with LAV splitter it's fine, just with Haali there are problems. Could someone check/confirm that?
Pat357
9th November 2011, 03:19
But when i use Lav Splitter, even directshow automatically connects the audio pin to ReClock (btw ReClock is configured to bitexact streaming see: http://forum.doom9.org/showpost.php?p=1534720&postcount=188) i get this popout and no sound at all:
http://img827.imageshack.us/img827/2678/notsupported.png (http://imageshack.us/photo/my-images/827/notsupported.png/)
And i need to use a decoder like lavaudio or ffdshow.
Your sound is not configured/not able to to handle 6ch PCM 32b @96 kHz.
Try to adjust the settings from your sound to do so or configure Reclock to make 24bit PCM.
I assume you not downmixing to stereo in FFDshow , are you ?.
First go to configure Reclock and set it to "24 padded in 32"' (first tab,look at PCM output)
You could also uncheck 32bit and 32bit float in Lavaudio, depending on your config, that could solve your problem already.
If you still get an error, your sound doesn't support 96kHz : configure reclock to output only 48 kHz sample rate.
robpdotcom
9th November 2011, 03:25
i don't know if its just me, but i cant play TrueHD tracks anymore if they are in a mkv container. There are no problems in m2ts container, tried LAV and Haali as the Splitter and with LAV splitter it's fine, just with Haali there are problems. Could someone check/confirm that?
This has been brought up before. The problem is with Haali, not LAV.
Pat357
9th November 2011, 03:51
Nev, when I use the installer, I do not get a chance to give a directory for installation. It just overwrites the existing install.
This makes it more cumbersome to go back to a previous version to test something...
IIRC, Lavfilters have asked for a installation directory in the past, like 2 or 3 versions back (like 0.36 and before)
Could you re-implement this in the installer ?
fastplayer
9th November 2011, 10:09
Nev, when I use the installer, I do not get a chance to give a directory for installation. It just overwrites the existing install.
That's how updating is supposed to be. If you wanna change the install directory, use the /DIR="full path" parameter for the setup executable.
Could you re-implement this in the installer ?
Please, don't.
rica
9th November 2011, 10:40
Your sound is not configured/not able to to handle 6ch PCM 32b @96 kHz.
Try to adjust the settings from your sound to do so or configure Reclock to make 24bit PCM.
I assume you not downmixing to stereo in FFDshow , are you ?.
First go to configure Reclock and set it to "24 padded in 32"' (first tab,look at PCM output)
You could also uncheck 32bit and 32bit float in Lavaudio, depending on your config, that could solve your problem already.
If you still get an error, your sound doesn't support 96kHz : configure reclock to output only 48 kHz sample rate.
Thank you but as i pointed out with same HW and same configuration of ReClock and using the same pcm mkv (i added a sample file on my previous post) if i use Haali or MPC Matroska splitter. audio pin directly connects to ReClock (without any audio decoder) and i listen bitexact 96-24 streaming. (BTW reclock already configured to 24 bit int padded to 32)
nevcairiel
9th November 2011, 11:36
Should be fixed for the next version. Raw PCM was not getting the appropriate media type in some cases.
rica
9th November 2011, 11:46
Should be fixed for the next version. Raw PCM was not getting the appropriate media type in some cases.
Thank you :thanks:
Additional note: If you select "waveout" option instead of "wasapi", Lav Splitter directly connected to ReClock but this time it's not bitexact, it falls to wasapi shared mode sure. Please try with my sample file.
pankov
10th November 2011, 00:13
Nev,
I've been doing some testing on madVR's deinterlacing and I discovered that when I use CUVID Acceleration and I set Deinterlacing to "None (Weave)" I don't get deinterlacing in madVR - it says "deinterlacing off (says upstream)". It also doesn't work with EVR.
It seams like using this option doesn't pass the interlaced flags to the renderer.
Is this by design?
How can I get hardware acceleration for the decoding and EVR/madVR deinterlacing at the same time? I'm performing some GPU/VPU Load testing and I'd like to compare CUVID to the MS DTV-DVD Video Decoder and also madVR to EVR deinterlacing.
sneaker_ger
10th November 2011, 01:10
Nev,
I've been doing some testing on madVR's deinterlacing and I discovered that when I use CUVID Acceleration and I set Deinterlacing to "None (Weave)" I don't get deinterlacing in madVR - it says "deinterlacing off (says upstream)". It also doesn't work with EVR.
It seams like using this option doesn't pass the interlaced flags to the renderer.
Is this by design?
How can I get hardware acceleration for the decoding and EVR/madVR deinterlacing at the same time? I'm performing some GPU/VPU Load testing and I'd like to compare CUVID to the MS DTV-DVD Video Decoder and also madVR to EVR deinterlacing.
Press CTRL+ALT+SHIFT+D ?
pooboy
10th November 2011, 01:32
I'm currently testing LAV Filter 0.39 with KMPlayer 3.0.0.1442 R2 and it shows a black screen with any 720p/1080p h.264 video if CUVID acceleration is enabled. No black screen at all with standalone LAV CUVID 0.13
golagoda
10th November 2011, 02:09
I'm currently testing LAV Filter 0.39 with KMPlayer 3.0.0.1442 R2 and it shows a black screen with any 720p/1080p h.264 video if CUVID acceleration is enabled. No black screen at all with standalone LAV CUVID 0.13
Does it work fine with any other players or just KMPlayer?
andybkma
10th November 2011, 02:24
Hi, just a feature request. If possible can you add "Select All" and "Select None" buttons to the installer on the part where you select which codecs/splitters to checkmark during the install process? That would make installation much faster and easier as some of us use LAV Filters for only one codec and/or splitter. In my case, just your excellent H264 Cuvid.
Thanks for your kind attention...
asasadad_1
10th November 2011, 02:49
LAV Splitter works bad on some CDXA/MPEG-PS files,mpc-hc internal MPEG splitter works fine.
sample (http://uploading.com/files/bb8caama/AVSEQ08.DAT/).
pankov
10th November 2011, 03:11
Press CTRL+ALT+SHIFT+D ?
Yes, I know I can force madVR to do deinterlacing and I've done it already but AFAIK there is no way to do it with EVR, right?
Also you'll have to agree with me that it's not something that can be used on a daily bases.
The question is why LAV Decoder in software mode is setting the correct interlaced flags and not in CUVID mode.
... or am I misunderstanding what "None (Weave)" should mean?
pooboy
10th November 2011, 03:22
Does it work fine with any other players or just KMPlayer?Haven´t tested other players yet.
psymed
10th November 2011, 05:34
By any chance, would the deinterlacing use more cpu or just gpu?
nevcairiel
10th November 2011, 06:53
when I use CUVID Acceleration and I set Deinterlacing to "None (Weave)" I don't get deinterlacing in madVR - it says "deinterlacing off (says upstream)". It also doesn't work with EVR.
It seams like using this option doesn't pass the interlaced flags to the renderer.
Is this by design?
There was some silly logic error that checked the condition wrong, it was fixed now.
roytam1
10th November 2011, 09:22
new nightly:
http://roy.orz.hm/lavf-w32-nightlies/lavf-my111110-rv34seekkeyframe-6bfdb44.7z
diff (RV30/RV40 seek to key frame):
http://roy.orz.hm/lavf-w32-nightlies/lavf-my111110-rv34seekkeyframe-6bfdb44.diff
nevcairiel
10th November 2011, 09:32
diff (RV30/RV40 seek to key frame):
http://roy.orz.hm/lavf-w32-nightlies/lavf-my111110-rv34seekkeyframe-6bfdb44.diff
I thought that was causing freezes? :p
roytam1
10th November 2011, 10:55
I thought that was causing freezes? :p
It doesn't from my testings. But sometimes seeking RV30/RV40 clips may cause a mute.
pooboy
10th November 2011, 19:03
Does it work fine with any other players or just KMPlayer?I just tested LAV Video 0.39 and LAV CUVID 0.13 with latest MPC HC and both work fine with cuvid acceleration. Damn.
* Found the culprit: changing from internal mp4/mov/mkv splitters to LAV Splitter or any other splitter fixes the black screen problem. However as i said before, the LAV CUVID 0.13 works fine without having to change splitters.
Weirdo
10th November 2011, 19:17
Is there a known issue with DVDViewer Pro (4.9)? When switching channels, many times the picture is frozen (to the previous channel) or I get a black screen. This only happens with LAV Video (0.39). (Microsoft Decoder & CoreAVC ok). "Rebuild Graph" from DVBV fixes it.
update: unchecking DVBViewer Filter's audio/video "TV/Radio Pre-Format Detection" seems to fix it. (channel switching becomes a bit slower)
oddball
10th November 2011, 19:45
How do I get forced subs in MKV's to display when subs are off by default in MPC-HC?
EDIT: Nevermind. Amnesia has set in (must be early alzheimers). I'm still waiting for a new version of the splitter so I can keep subs on in MPC and only have it display full subs for certain languages and forced for everything else.
glorp
10th November 2011, 20:11
I'm still waiting for a new version of the splitter so I can keep subs on in MPC and only have it display full subs for certain languages and forced for everything else.
That would be the Advanced subs option in version 0.38 and beyond.
sneaker_ger
10th November 2011, 20:29
OK did not realize there was a new version out. What is the option to enable full English subs for all non-English audio and English forced subs for all audio?
I don't know if that is exactly possible (full subs include forced), but this will probably suffice:
subtitles: "eng:eng|f;eng:off;*:eng"
@nevcairiel
Maybe it would make sense to:
- allow to select all but e.g. English: "!eng:eng"
- apply the audio selection order to the "*" symbol
oddball
10th November 2011, 20:33
Thanks. I did not notice there was a new build. Default works just fine now! :)
nevcairiel
10th November 2011, 20:38
- allow to select all but e.g. English: "!eng:eng"
That would make some things easier, although i doubt it adds functions that don't work right now - you can just use more logical rules. :) I'll consider it.
- apply the audio selection order to the "*" symbol
Not sure what you mean with that?
In something like this: "eng:*" - it should select the subtitles that match the audio language first? That doesn't really fit into my current design - its supposed to do exactly that you wrote down, and nothing else.
glorp
10th November 2011, 20:44
but this will probably suffice:
subtitles: "eng:eng|f;eng:off;*:eng"
I think
"eng:eng|f;eng: off;*:eng;*:*|f
is a little closer. With one minor tweak of also handling the case for eng:und, that's what I use myself.
cremor
10th November 2011, 20:59
"Orchestra (Long) (Lossless)" and "Orchestra (Short) (Lossless)" from here (http://www.demo-world.eu/trailers/high-definition-trailers.php) are reported as interlaced during playback (and even on that website) but they drop and delay a lot of frames using deinterlacing (madVR 0.78) and look a lot better without deinterlacing, so I assume they are progressive.
Anything the splitter/decoder can do here or were they just encoded wrong?
Btw, nothing new in 0.39, is the same in 0.38.
nevcairiel, did you have time to look at these yet?
It's not important, I'm just wondering (from a technical point of view).
sneaker_ger
10th November 2011, 21:14
Not sure what you mean with that?
In something like this: "eng:*" - it should select the subtitles that match the audio language first?
No, not the current audio language, but the first audio language in the audio selection field.
I'll make an example. User X's mother tongue is Korean. He also knows some decent Japanese and some English.
In audio he will put: kor,jpn,eng
Now he wants to only select forced subs for his known languages, i.e. subtitle selection:
*:kor|f;kor:off;*:jpn|f;jpn:off;*:eng|f;eng:off
If it would be guaranteed that the * selection is applied in the audio order, he could simply write:
*:*|f;*:off
I think it makes sense to first select the subtitles the user put in his audio field, because those are the ones that he is most likely to understand. And in the order of his understanding.
This example is probably not the best, as those selections are not exactly the same and are not that much work to fully write out.
The following extension is better, almost perfect, IMHO:
[A] would only be the languages put in the audio field (including the order).
* would be all languages, but first those in the audio field (including the order), then "und" and then the rest
example:
[A]:[A]|f;[A]:off;![A]:*
This would be:
1.) if the audio language is known to the user, select only a forced track in a language the user knows and in the order given in the audio field.
2.) If the audio language is known, but there is no forced track in any language known to the user, do not select any subtitles.
3.) If the audio language is unknown to the user, activate any subtitle, preferably those in the audio field (and in that order), if those are not there the first track with undefined language (could be a known language), and only after that one of the definitely unknown languages.
(Actually I think that my example should be the default mode. Makes the most sense. But may be just me, of course...)
---
To something different:
I know I asked before, but you didn't wrote what you thought of it: Many people do not use the forced flag in Matroska, due to its either too strict meaning or too vague description. (Mosu has wrote something about that in his thread, 99% of the people are not using the flags as the spec mandates.)
So what do you think about searching the subtitle name for the string "forced" instead just for the forced flag?
nevcairiel
10th November 2011, 21:15
nevcairiel, did you have time to look at these yet?
It's not important, I'm just wondering (from a technical point of view).
The file is not purely interlaced, its coded as MBAFF, which means every macroblock can individually be interlaced or progressive.
Its 30fps, which a deinterlacer turns into 60fps. Not sure why it would drop frames for you, mine didn't (on a 60Hz screen).
Not sure i can see a image quality difference between deinterlacing or not.
sneaker_ger
10th November 2011, 21:37
Addition:
In my last post I forgot that LAV Splitter only handles the subtitle selection in an "advanced" mode, not both subtitle and audio, like Haali. This can lead to situations, where the selection is far from "perfect" with my proposal. E.g. for audio languages that are in an unknown language, but you prefer them anyways, because they are the original audio (like many anime viewers not understanding Japanese, but want to watch in Japanese audio anyways). To make it proper it would be required to leave the complete selection to the advanced mode or create more than just one group [A], [B], [C], or at least two groups. Still, implementing my last proposal would still be an improvement over the current situation, even if multiple groups might be too complicated.
nevcairiel
10th November 2011, 21:42
Not selecting audio through the advanced mode was a conscious decision, and i do not plan to change that.
I can consider adding another special group which means "audio languages, in order", but i fear that just makes it more complicated with very few people actually using it.
nevcairiel
10th November 2011, 21:52
Here is a test build with some new deinterlacing changes:
http://files.1f0.de/lavf/LAVFilters-0.39-15-g905db7d.zip
Bulletpoint changes:
- Changed "Field Order" and "Force Deinterlacing" to global options
- Added "Aggressive Deinterlacing" option
That means that all those options not only apply to the CUVID deinterlacer now, but also to deinterlacing when its done in the renderer.
Aggressive deinterlacing is similar to CoreAVCs aggressive checkbox - it forces deinterlacing if the stream indicates interlaced coding is used, even if not all frames are coded as such. Alot of broadcasts seem to be broken that way.
Force Deinterlacing foces deinterlacing on all streams, even if the whole stream is marked progressive. Not sure that option is still needed, i have no sample which would require it.
@PeQuE:
Aggressive Deinterlacing should probably make your stuff play properly.
cremor
10th November 2011, 21:53
The file is not purely interlaced, its coded as MBAFF, which means every macroblock can individually be interlaced or progressive.
Its 30fps, which a deinterlacer turns into 60fps. Not sure why it would drop frames for you, mine didn't (on a 60Hz screen).
Not sure i can see a image quality difference between deinterlacing or not.
Ok, thanks. Then I assume the problem comes from the madVR deinterlacing since I have problems with that with other interlaced files too.
Another question:
Should playback speeds other than 1x work with LAV in MPC-HC? I used that feature some times back in the days I still used MPC-HC internal splitters and decoders but now I get some weird problems, e.g. sound breaks every few seconds.
nevcairiel
10th November 2011, 21:54
Another question:
Should playback speeds other than 1x work with LAV in MPC-HC? I used that feature some times back in the days I still used MPC-HC internal splitters and decoders but now I get some weird problems, e.g. sound breaks every few seconds.
I didn't really implement that, no. Sometimes it works anyway however, so thats weird, not sure how that is supposed to work anyway. :)
I always thought the renderers just play stuff faster, but i really have no idea, its not a feature i ever used. :P
cremor
10th November 2011, 21:57
I didn't really implement that, no. Sometimes it works anyway however, so thats weird, not sure how that is supposed to work anyway. :)
Ok, then I'll just watch the videos at the speed they are supposed to be watched ;)
Thanks for the information.
sneaker_ger
10th November 2011, 21:59
Not selecting audio through the advanced mode was a conscious decision, and i do not plan to change that.
I see.
I can consider adding another special group which means "audio languages, in order", but i fear that just makes it more complicated with very few people actually using it.
Well, it is called "advanced" for a reason.
But would you agree that first selecting the languages in the audio field (and in that order) for the "*" operator makes more sense than just selecting the subtitle by alphabet?
I guess all it needs are two groups, but I have to think about it some more, or I'll overlook something important again. Maybe I should try to write a patch as I have some more ideas for the selection.
nevcairiel
10th November 2011, 22:09
But would you agree that first selecting the languages in the audio field (and in that order) for the "*" operator makes more sense than just selecting the subtitle by alphabet?
Its not by alphabet, its by order in the file. :p
Anyhow, i considered that before, but didn't implement it because it would've bloated up the logic. Although now that i think about it, not that much.
How it works is simple - every entry just gets converted into a structure which holds the same information as the tag, just parsed for easier access. These structures just get iterated over and matched against subtitle streams. Since there is no tag with special powers, this is easy.
To implement the "*" thing, i would probably just replace the * entry with multiple entries, one for each audio language. Its not that complicated, i guess.
Consider:
Audio: jpn,eng
Subtitle: *:*|f
would translate internally to: *:jpn|f;*:eng|f;*:*|f
This is what you want, right?
I could consider prefering "und" over "*", if thats actually how files work. Do they have some streams with a language and others without?
Anyhow, i'm going to sleep, feel free to summarize your ideas or even provide patches, i'll look at it tomorrow or on the weekend.
sneaker_ger
10th November 2011, 22:49
Consider:
Audio: jpn,eng
Subtitle: *:*|f
would translate internally to: *:jpn|f;*:eng|f;*:*|f
This is what you want, right?
Correct.
I could consider prefering "und" over "*", if thats actually how files work. Do they have some streams with a language and others without?
It's not that I think that it is important. It's just that the probability of an "und" track being in a language known to the user is higher, than for a track in a language the user hasn't defined in the selector. It's the strawberry on top of the cake, not really vital.
Anyhow, i'm going to sleep, feel free to summarize your ideas or even provide patches, i'll look at it tomorrow or on the weekend.
I'll give it some thought, though I don't know when (or if) I'll come to a conclusion.
A few questions (not necessarily connected to the selection logic), though:
1.) Is it possible to know beforehand (without parsing the complete file) whether a PGS track includes forced subtitles? I presume it's not.
2.) Why isn't there the same possibility for idx/sub tracks?
3.) Is it possible to know beforehand (without parsing the complete file) whether an idx/sub track includes forced subtitles?
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.