View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
Mercury_22
10th April 2011, 21:19
Yea, I was seeing something like that, as well, but attributed it to my machine just being painfully slow. If you have that issue, as well, then maybe there's something else going on.
With the latest version Nevcairiel-LAVFSplitter-0.21-25-gef87b91 (http://www.multiupload.com/4HFKGADR93) the PGS "delay" seems to be solved can you confirm ?
SamuriHL
10th April 2011, 21:22
Quickest is in the splitter, of course - i could just chain the spdif/hdmi muxer after the demuxing, and all would be good. (over simplified, of course)
Yes, please! :)
SamuriHL
10th April 2011, 21:23
With the latest version the PGS "delay" seems to be solved can you confirm ?
I'm not sure if I'll have a chance to do that today. I've got it built and installed so I'll see what I can do but I'm not sure it'll be soon. Got a lot to do tonight. :)
Underground78
10th April 2011, 21:30
Works fine for me, ffdshow for video, LAV Audio for audio. Needs more details.
I use MPC-HC internal decoder and LAV Audio. When I change the audio track, the sound stops but the video track keeps playing and when I try to right click into MPC-HC windows I get this error :
http://i.imgur.com/j0qbd.png (french for : "unspecified error")
MEDIATYPE_Stream looks good in principal. It might however be that a Capture Filter works in Push Mode, and my splitter will for the time being only support pull mode..
I have DVB-C available at my place, just no card to test it .. maybe i should get one cheap somewhere.
I am not totally sure but I think push mode is needed.
nevcairiel
10th April 2011, 21:48
That error only happens if something went terribly wrong .. The sample you linked even has two identical audio tracks (with identical i mean same codec, same channels, same bitrate), which should make the switching so much easier to begin with.
Did you try with another audio decoder?
Underground78
10th April 2011, 21:54
That error only happens if something went terribly wrong .. The sample you linked even has two identical audio tracks (with identical i mean same codec, same channels, same bitrate), which should make the switching so much easier to begin with.
Did you try with another audio decoder?
I tried first the internal audio decoder and I had this error. I though it could be decoder related so I tried LAV Audio after and got the same crash again ...
Ger
10th April 2011, 22:01
All samples from my last batch of uploads fixed in ef87b91. :thanks:
This means 100% of the DVB samples I've recorded myself (at least the ones I've tested) now play with LAV Splitter. :)
SamuriHL
10th April 2011, 23:40
With the latest version Nevcairiel-LAVFSplitter-0.21-25-gef87b91 (http://www.multiupload.com/4HFKGADR93) the PGS "delay" seems to be solved can you confirm ?
Well, sort of I think. I have one particularly troubling file that I use to abuse decoders. :D When I enabled the subs, it missed the first set of subs. After that, everything was fine. So I can't really tell you if it's fixed in every case or not.
Aleksoid1978
11th April 2011, 06:19
It start to play, but i can't seek it, timer stop. :(
Yes - it's open, start play and stop or freeze - on different Decoder.
Dogway
11th April 2011, 10:11
I can't seek in avc+aac MOV, MPC crashes in version 0.20. Version 0.21 too.
Please check the clip to know if its only me, I checked several AV configurations already. Haali has no problems.
mov 20Mb:
http://www.mediafire.com/?z63jnex9rwv9mvj
Mercury_22
11th April 2011, 11:40
I can't seek in avc+aac MOV, MPC crashes in version 0.20. Version 0.21 too.
Please check the clip to know if its only me, I checked several AV configurations already. Haali has no problems.
mov 20Mb:
http://www.mediafire.com/?z63jnex9rwv9mvj
No problem here using Nevcairiel-LAVFSplitter-0.21-26-gd96cd94 (http://www.multiupload.com/3SL36ZVRNI)
CruNcher
11th April 2011, 12:22
V0lts Canal HD sample still crashes with Cyberlinks Decoder that's sad really as it is the only H.264 .ts stream that crashes Cyberlinks Decoder with Lav splitter so far it did this with Haalis splitter to if i remember right, not sure if it's a LAV splitter bug though or the way Cyberlinks Decoder needs to get this stream presented, it's really a heavy issue as it's only working on Cyberlinks Decoder via either Arcsofts or Cyberlinks Demuxer the MPC-HC splitter cant connect to Cyberlinks Decoder, Haalis crashes, Lav splitter crashes too :(
Lav Audio Decoder works fine on Cyberlinks or Arcsofts Demuxer i guess their is no fix for this Crash unless someone finds out how Arcsofts and Cyberlinks Demuxer work :(
Arcsoft Mpeg Demuxer (ok)
http://img9.imageshack.us/img9/3104/arcsoftok.png
Cyberlink Demuxer 2.0 (ok)
http://img683.imageshack.us/img683/7808/cyberlinkok.png
Haali Splitter (fails)
http://img233.imageshack.us/img233/7910/haalicrash.png
MPC-HC Splitter (fails)
http://img402.imageshack.us/img402/5058/mpchcfail.png
Lavf Splitter (fails)
http://img835.imageshack.us/img835/295/cyberlinkcrash.png
nevcairiel
11th April 2011, 12:33
i guess their is no fix for this Crash unless someone finds out how Arcsofts and Cyberlinks Demuxer work :(
There is, use another decoder. :)
The Cyberlink decoder has caused nothing but headaches.
CruNcher
11th April 2011, 12:58
Yes but its the only DXVA filter that survives this test so far http://forum.doom9.org/showpost.php?p=1488268&postcount=6181 all the other DXVA and Nvcuvid fail with this Stream on VP2 and VMR9 Renderless (Intel H67) :( And it was freezing in the beginning on V0lts Canal HD sample with Lav Splitter now it crashes same as on Haalis (the crash is caused inside the Decoder) :( I had never issues with Cyberlinks Decoder and DXVA (Nvidia) except on 1 .mp4 H.264 bitstream it shows no picture else it worked rather flawless though now i can count this to a major problem with it too :(
nevcairiel
11th April 2011, 13:09
VP2 hardware just is not fast enough for 60fps decoding, we established that already. The Cyberlink decoder probably knows that and switches into partial acceleration mode, using the CPU for the actual decoding, just doing MoComp and IDCT on the GPU.
If you want 60fps DXVA, get a VP4 card. :) Or simply decode in software...
Anyway, this is off-topic, and does not belong in this thread, so please no further comments on the DXVA issue.
The Cyberlink decoder is a black box, the same goes for the Cyberlink Demuxer. Those are stolen from a commercial player, and there is no chance of ever getting information from Cyberlink how their stuff works or why it crashes - its impossible to debug without the first hint why the crash happens. Considering how the crash also happens with other "open" demuxers, its not something that i will really invest any more time in.
And with this, the discussion ends for me, sorry.
CruNcher
11th April 2011, 13:31
Nice thesis about partial acceleration (would be hyper smart) but this rejects it
http://img852.imageshack.us/img852/166/noeasyitanswers.png
The Bitstream is not as complex as the 4 Girls Clip (that one is very complex and needs every resource it can get from the VPx and some small improvement for MVC for example could allready explain your VP4 results, higher clock rate most probably for the 3D stuff) it's made to play on the PS3 most probably made with Sony's Blu-Code Encoder ;)
hmm wait why is it shown being 25 fps in DgIndexNV Caption Display (maybe it was default replaced in the bitstream by mkvmerge ?), this would indicate the bitstream is signaling it, though the .mp4 is signaling Frame rate: 59.940 but why this should cause most Decoder to go hi wire after 12 seconds playback and why only on VMR9 Renderless :P
Anyway you made your point clear and i can fully understand it so i have to find a workaround, clear though every other Decoder will fail with the above explained thing guess i have to be happy with that every other of them fails for now though it's only this Sony Wipeout bitstream and i have not found any other that's causing this drops after 12 seconds (so far) that's a little relieving also i found a better configuration for Mainconcepts H.264 DXVA and Lav Splitter though on that Canal HD sample Mainconcepts DXVA (very important setting with lav Splitter is Stream Order = Off else it jumps around like crazy, and Media Time Mode = Frame Number,Synchronization PTS reference only seems fine) fails with strange artifacting especially in motion on that stream (im pretty sure this stream comes out from a Ateme Hardware Encoder, especially the perfect Noise quality indicates that never saw Tandberg or others being so good in PSY like X264 only Ateme can do that equally in a Broadcast enviroment) not sure if that artifacting is caused by wrong splitter handling yet though only tested with lav splitter so far connected to Mainconcept DXVA :(
Funny neither Arcsoft nor Cyberlinks Demuxer allow Mainconcept to switch into DXVA mode with this stream so no artifacts
nevcairiel
11th April 2011, 17:17
LAV Filters 0.22
LAV Splitter
- Added support for MKV embedded fonts
- Improved VC-1 and H264 parsing
- Fixed choppy XVID playback in MKV
- Fixed a seeking issues that caused incompatibilitys with certain decoders (eg. a crash in ffdshow libmpeg2)
- No longer report incomplete lists of keyframes via IKeyFrameInfo, as it would break seeking in certain players.
- Allow opening all .mpls files if the user directly specifys to open one, even if it contains loops or duplicate titles.
- Improved playback of MPEG-TS with multiple programs
- Added new debugging option (Generate missing timestamps)
Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.22.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.22-x64.zip)
First, a short statistic of the changes since 0.21
33 files changed, 972 insertions(+), 302 deletions(-)
Thats alot of lines of code.
Anyhow, VC-1 in both MPEG-TS and MKV should work hopefully flawlessly, without Frame Time Correction, in a multitude of decoders - man that took some serious doing.
In other news, H264 also got a new parser, which should also remove the need for Frame Time Correction again.
What else..
Right! The new "Generate missing timestamps" options. Its OFF by default, for a good reason. On the most files, it'll most likely destroy fluidity. However, on some files, it might help. For example, its always on for VC-1 in MKV. If you have a file that seems to play at the wrong speed, or not at all, or just choppy, try ticking that option, and see what happens. If it fixes a particular case for you, please report which settings you used, together with a sample file - and i can code in some logic.
And boo, AVI on Vista/7 is still broken. :p
Next up is working on supporting taking data from the "File Source (Async)", which will allow LAV Splitter to cooperate with the default MS AVI setup, rather then forcefully replace it - so that will be dealt with sooner or later.
Have fun.
PS:
The two EVO samples you guys send me, for some arcane reason, they play fine now -- At least with the Cyberlink Decoder - ffdshow seems to get the FPS wrong, guess its not listening to pulldown flags, but its smooth otherwise, just heavily out of sync. But perfect with Cyberlink, or LAV CUVID, or ArcSoft. :)
SamuriHL
11th April 2011, 17:28
Good Lord. That's a huge changelist. :) Thanks for your incredibly hard work, Nev! Off to build me a new release. Hopefully clsid can clean up his script for building an installer soon as that would really be handy, as well.
madshi
11th April 2011, 17:29
Thanks! :)
This may be mainly interesting to developers, but anyway, would you mind giving me some background info on this whole frame time correction mess? Where do the problems come from? Are the files badly muxed? Or the decoders stupid? And how did you fix the problems exactly? Thanks!
fastplayer
11th April 2011, 17:36
In other news, H264 also got a new parser, which should also remove the need for Frame Time Correction again.
<n00b-Alert>Is libavformat's parser not good enough?</n00b-Alert>
How much does LAVSplitter deviate from upstream by now?
Have fun.
I will. :)
:thanks:
Underground78
11th April 2011, 17:46
Registering the audio filter seems to make MPC-HC crash for me. Do you see this behavior ?
Edit : I still have the strange crash when switching the audio track, now it simply stops playing completely.
fps
11th April 2011, 17:51
Thanks for all the changes and new features of the last weeks!
Registering the audio filter seems to make MPC-HC crash for me. Do you see this behavior ?
Just wanted to post the same, MPCHC crashes as soon as a file is loaded, no matter if AC3 or DTS audio.
The splitter alone works fine.
I've also noticed that Enable Audio Stream Parsing is set in default configuration. Isn't this behaviour unwanted considering the info text that is displayed if I hover above the checkbox?
nevcairiel
11th April 2011, 17:56
This may be mainly interesting to developers, but anyway, would you mind giving me some background info on this whole frame time correction mess? Where do the problems come from? Are the files badly muxed? Or the decoders stupid? And how did you fix the problems exactly? Thanks!
For the record, all these issues never affected madVR once, always played just fine with it.
The option was added years back to fix VC-1 in MPEG-TS decoding, because for some reason the timestamp reordering for VC-1 B-Frames creates broken timestamps - at least in the internal VC-1 decoder (and the MS WMVideo Decoder).
What exactly causes the broken timestamps on those codecs, i cannot say.
Now, i don't think its a muxing issue, all files, including BluRays, show this problem - so i would assume that the VC-1 was muxed properly, we just didn't demux it properly.
Now, what i did to fix this was ask ffmpeg to give me Decoding Time Stamps (DTS) instead of Presentation Time Stamps (PTS). The DTS timestamps are already reordered, and playback was fine again. Added some checks if one of the affected decoders was used, and activated it when needed, and let ffmpeg to the parsing and timestamp correction.
The second part was to write a new parser for VC-1, for those codecs that do not need/want the timestamp correction.
Sadly i cannot use the ffmpeg parsers without them also correcting timestamps - so i wrote my own (based on the MPC-HC VC-1 parser), which looks for the VC-1 sync bytes and reassembles the MPEG-TS stream into full VC-1 frames, and sends those off to the decoder.
The puzziling part of the story is VC-1 in MKV. For some reason, its backwards. The container timestamps are just fine for MPC-HC and the WMVideo Decoder, but for the commercial decoders i have to activate ffmpegs parsing.
I wish i knew more about how decoding of B-Frames actually works and how they are muxed/timestamped, but i got it working with both EVR and madVR, and thats what counts, isn't it. :)
I Know this is rather vague, but i hope it still helps.
Snowknight26
11th April 2011, 17:56
The splitter's properties dialog shows "full subtiles" instead of "full subtitles" as one of the options for subtitle selection mode.
nevcairiel
11th April 2011, 18:01
Just wanted to post the same, MPCHC crashes as soon as a file is loaded, no matter if AC3 or DTS audio.
The splitter alone works fine.
Works fine for me. Actually, the audio decoder didnt change at all since 0.21. I'll do a full rebuild and reupload.
Also, x86 oder x64?
If x64, can you try in x86?
Edit:
Grab 0.22 again and see if it helped. Otherwise i'm out of ideas - everything is fine here. Only answer would be a crash in ffmpeg.
I've also noticed that Enable Audio Stream Parsing is set in default configuration. Isn't this behaviour unwanted considering the info text that is displayed if I hover above the checkbox?
Damn, i applied the wrong comment to the wrong field. bah :P
That comment was meant for the option below it.
Audio stream parsing, and video stream parsing, should always be on.
<n00b-Alert>Is libavformat's parser not good enough?</n00b-Alert>
How much does LAVSplitter deviate from upstream by now?
Its doing something completely different then the avformat parser.
The splitter's properties dialog shows "full subtiles" instead of "full subtitles" as one of the options for subtitle selection mode.
fixed, thanks.
Underground78
11th April 2011, 18:09
Grab 0.22 again and see if it helped. Otherwise i'm out of ideas - everything is fine here. Only answer would be a crash in ffmpeg.
Works fine now (well it's still crashing when I change the audio track) ! Thanks ! :)
nevcairiel
11th April 2011, 18:20
Works fine now (well it's still crashing when I change the audio track) ! Thanks ! :)
I still think thats related to some other filter, considering its only you thats happening to.
CruNcher
11th April 2011, 18:23
Something must have gone majorly wrong Nev not Cyberlink Decoder crashes anymore with V0lts sample but the avcodec-52.dll even with LAV CUVID as decoder, ehh it seems even more worse anything crashes here now with the splitter in avcodec-52.dll hmm could be a compiler issue ?
Underground78
11th April 2011, 18:25
I still think thats related to some other filter, considering its only you thats happening to.
Yes, you are right. AC3 Filter is to blame ... I don't really understand why it crashes with this sample and not some others thought.
CruNcher
11th April 2011, 18:36
Yep the old Mercury 0.21 build works seems the official 0.22 broke for Intel Core I5 2nd Generation at least
http://www.multiupload.com/3SL36ZVRNI <- works
http://files.1f0.de/lavf/LAVFilters-0.22.zip <- crashes in avcodec-52.dll Windows XP SP3 32 bit
hmm redownloading
nevcairiel
11th April 2011, 18:41
Just download 0.22 again, the first version was apparently bugged - replaced it after, dunno, 40 minutes.
Works perfectly on my HTPC, going to watch some BluRay with the new madVR now. :)
CruNcher
11th April 2011, 18:46
yep works now puh :)
Kaotech
11th April 2011, 18:47
Don't working here, if i change audio track the vidéo stop to play, with Lav audio, ffdshow audio decoder it work but with Arcsoft Audio Decoder Hd the video stop to play.
:confused:
CruNcher
11th April 2011, 18:52
Yep it stops to play also here sound continues on V0lts sample but to be true i didn't tried switching audio before, play around with the splitter settings it could fix it ;)
nevcairiel
11th April 2011, 18:52
Don't working here, if i change audio track the vidéo stop to play, with Lav audio, ffdshow audio decoder it work but with Arcsoft Audio Decoder Hd the video stop to play.
:confused:
That only happens if the ArcSoft decoder does not support the track. Is it Mono by any chance?
As a general rule, if some decoder causes problems, use another one! :)
What i see on BluRays with the ArcSoft decoder - it pauses for maybe a second, then resumes, both audio and video. All like its supposed to function.
Plutotype
11th April 2011, 19:14
What i see on BluRays with the ArcSoft decoder - it pauses for maybe a second, then resumes, both audio and video. All like its supposed to function.
this behaviour confirmed here with 0.22
mindbomb
11th April 2011, 19:16
if your having problems with the arcsoft decoder, grab the dtsdecoderdll.dll from the latest version.
For me, it fixed all problems with stereo 16 bit and mono tracks, and it still manages to output 24 bit pcm.
fps
11th April 2011, 19:27
Works fine for me. Actually, the audio decoder didnt change at all since 0.21. I'll do a full rebuild and reupload.
Also, x86 oder x64?
If x64, can you try in x86?
Edit:
Grab 0.22 again and see if it helped. Otherwise i'm out of ideas - everything is fine here. Only answer would be a crash in ffmpeg.
You were right, after downloading again everything works fine, thanks!
nevcairiel
11th April 2011, 19:35
if your having problems with the arcsoft decoder, grab the dtsdecoderdll.dll from the latest version.
For me, it fixed all problems with stereo 16 bit and mono tracks, and it still manages to output 24 bit pcm.
I can confirm that. Keep the ASAudioHD.ax from TMT3.185 and just get the dtsdecoderdll.dll from TMT5 - works just perfectly.
CruNcher
11th April 2011, 19:44
Hmm i currently use 1.3.3.262 old one was 1.3.3.255 which was a support fix and 1.1.0.8 dtsdecoderdll.dll
with it it doesn't stop with LAV CUVID + LAV Audio it does :P
LAV CUVID + Arcsoft Audio Decoder HD (fails)
LAV CUVID + LAV AUDIO (fails)
CoreAVC 2.5.1 CUDA + LAV AUDIO (the switch is very low delay, but after it gets totaly out of sync)
CoreAVC 2.5.1 CUDA + Arcsoft Audio Decoder HD (same as with LAV AUDIO)
CoreAVC 2.5.1 CUDA + ffdshow Audio (switch kills 1 frame and after that goes unsync as well)
LAV CUVID + ffdshow Audio (same as above)
wow seems at least all Nvcuvid fail with switching on V0lts Canal HD sample
Cyberlink Demuxer 2.0 + Lav Audio Decoder + Cyberlink Decoder DXVA (perfect result switch takes some seconds blending in 4 seconds ? but stays sync)
Kaotech
11th April 2011, 19:49
That only happens if the ArcSoft decoder does not support the track. Is it Mono by any chance?
As a general rule, if some decoder causes problems, use another one! :)
What i see on BluRays with the ArcSoft decoder - it pauses for maybe a second, then resumes, both audio and video. All like its supposed to function.
No it's a 5.1 track, i remember when i register LAVAudio.ax with 0.19, I could change audio Track, i don't know why it no longer works.
VipZ
11th April 2011, 19:52
LAV Filters 0.22
PS:
The two EVO samples you guys send me, for some arcane reason, they play fine now -- At least with the Cyberlink Decoder - ffdshow seems to get the FPS wrong, guess its not listening to pulldown flags, but its smooth otherwise, just heavily out of sync. But perfect with Cyberlink, or LAV CUVID, or ArcSoft. :)
Cool thanks, new build working well for me :)
HomeY_
11th April 2011, 20:07
GREAT job on the VC-1 (MKV) issues! So far everything seems very very nice. Finally 1 splitter that handles all i need.
TNX for the efforts Nevcairiel! :D
SamuriHL
11th April 2011, 20:19
Nev, just a note that the latest version fixes an issue with a ts file that would be hard to explain. Just know that it's h.264/AC3 in a ts container and wasn't playing before and is now. :)
Sebastiii
11th April 2011, 20:24
Hi Nevcairiel :) Nice job :) Thank you you fixed it :)
Happy man :)
Seb.
nevcairiel
11th April 2011, 20:32
<< big blob of nonsense >>
Delete that Canal HD sample, now.
Its just a broken file, be done with it already.
What happens is that switches cause a Flush, because the graph is stopped, and the decoder does not survive the flush, it forgets how to decode the image. (seeing how you can also not seek in it)
Now, delete it.
SamuriHL
11th April 2011, 20:33
Ok, I have a file that seems highly broken. It'll play if I leave it alone. If I try to seek, it takes me out of full screen mode and "pauses" the video. When I "resume" it's from the beginning again. I need to test more to see where the issue is. (Danger of testing too many changes at once. I've got madshi's new madVR version running, as well. Man this is such an AWESOME setup!) Will let you know if it's a LAV Splitter issue. My MPC-HC settings are overly simplified now. ffdshow for bitstreaming ONLY, LAV Splitter, Cyberlink Decoder (I'm testing on the AMD machine) in HAM mode, and madVR for rendering. The file in question was made recently with my HD PVR and hasn't been edited yet. I can fix the file but if you want a sample that can break to test with if I determine it's happening with all renderers and decoders, then I can make it available.
CruNcher
11th April 2011, 20:35
Delete that Canal HD sample, now.
Its just a broken file, be done with it already.
What happens is that switches cause a Flush, because the graph is stopped, and the decoder does not survive the flush, it forgets how to decode the image. (seeing how you can also not seek in it)
Now, delete it.
And how can Cyberlinks and Arcsoft Demuxer survive this with any Decoder even yours ?
nevcairiel
11th April 2011, 20:41
And how can Cyberlinks and Arcsoft Demuxer survive this with any Decoder even yours ?
Who cares.
The file does not work, get over it. You're really trying my patience constantly hammering on one broken file. Leave it alone, yes i know, that file is broken. Its not my fault, ffmpeg just doesn't like it.
Want it fixed? Open a bug report at their place.
I'm done, just use the Cyberlink Demuxer if its so super great, jeez.
pankov
11th April 2011, 20:41
nev,
if I'm not asking too much could you, please, add an option to not expose embedded DVB subtitles?
I ... and I suppose many others ... need this because a lot of broadcasters add a subtitle stream which is often empty and sadly it forces the player (ZoomPlayer in my case) to add it's subtitle renderer (VobSub or FFDShow) and this could ruin the Deinterlacing that is usually needed for boradcasts.
Thanks to italospain from the LAV CUVID thread I know that it's possible to get great deinterlacing and still have subs but nevertheless this only works with FFDShow and not with VobSub which is the default subtitles renederer in ZoomPlayer.
I have one more request
can you tell me where I can see all the media subtypes and the formats they are used for that LAV Splitter outputs?
I've just noticed that I have problems in ZoomPlayer with some files that have E-AC3 audio tracks which Haali's splitter outputs as simple AC3 and work fine but your splitter outputs {A7FB87AF-2D02-42FB-A4D4-05CD93843BDD} (which AFAIK is the correct type) (or {AFBC2343-3DCB-4047-9655-E1E62A61B1C5}) and Zoomplayer gives an errour about unknown subtype.
The solution in ZoomPlayer is simple - I'll just add the new subtype to a new profile, but just wanted to do it for all subtypes, not wait for the next problematic one.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.