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

nevcairiel
14th August 2010, 14:55
LAV Filters 0.83 (released 2026/08/17)
including LAV Splitter, LAV Video and LAV Audio.

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

Hi folks,

We've been working on this for quite a while already, and i feel its time to release it into the wild for some more comprehensive testing.

LAVFSplitter is a multi-format media splitter that uses libavformat (the demuxing library from ffmpeg) to demux all sorts of media files.
The project has been growing in my mind for quite a while, until i found out that Ti-BEN from the XBMC DSPlayer team was working on this as well,
so we joined forces and developed the first prototype together. Since then some time passed, and this is the third design that came out of
our combined efforts. It is already in use in the XBMC DSPlayer branch as the internal splitter, and now available as a standalone for everyone!

At this point i would like to thank Ti-BEN for his contributions. Without his work on this project, it probably would have stayed a design in my mind.

State of the project
Note that this list only lists properly tested formats/codecs, many others may just work!

Containers
MKV/WebM, AVI, MP4/MOV, MPEG-TS/PS (including basic EVO support), FLV, OGG, and many more that are supported by ffmpeg!

Video Codecs
H264, VC-1, MPEG-2, MPEG4-ASP (Divx/Xvid), VP8, MJPEG and many more.

Audio Codecs
AAC, AC3, DTS(-HD), TrueHD, MP3/MP2, Vorbis, LPCM and more.

Subtitles
VOB, DVB Subs, PGS, SRT, SSA/ASS, Text

BluRay Support
Support for opening BluRay playlists (.mpls), as well as the index.bdmv file, which will try to detect the main movie playlist!
Full support for Seamless Branching Blu-rays as well as HD audio (including native full DTS HD-MA support as of 0.65!)

Other Notable Features
- MKV Edition/Ordered Chapters/Segment linking support
- Full Stream switching
- MKV Embedded Fonts
- Audio Bitstreaming (through LAV Audio)

Note:
Not all containers are equally supported, so some formats may fail in one container and work in another.
Also note that "tested" doesn't mean it won't fail eventually. There are many combinations of codecs, and its impossible to test all of them for me.

How to Use
Here are some guides that include LAV Filters (but are usually not limited to them):

Advanced MPC-HC Setup Guide (http://www.avsforum.com/avs-vb/showthread.php?t=1357375) (by mindbomb)
Watching H.264 videos using Compute Unified Device Architecture (CUDA) (http://imouto.my/watching-h264-videos-using-compute-unified-device-architecture-cuda/)

Those guides are in no way "official", and I do not guarantee for the accuracy of these guides, but they should get you started.
If you know about a good guide that should be added here, please say so!

Feedback
When reporting problems, please always state the Container Format, the Codec, and the Decoder you're trying to use. If possible, a short sample will help greatly to resolve any issues!
Please report issues on the GitHub project page: https://github.com/Nevcairiel/LAVFilters/issues

Download
The source can be found on the GitHub project pages:
https://github.com/Nevcairiel/LAVFilters (development repository)

LAV Filters work on 7/8/8.1 and Windows 10/11. Older versions of Windows are not supported.
Note that some functionality may require newer operating systems (primarily hardware acceleration options).

Binaries for the most recent version are available here:
Version 0.83: Installer (both x86/x64) (https://files.1f0.de/lavf/LAVFilters-0.83.exe) -- Zips: 32-bit (https://files.1f0.de/lavf/LAVFilters-0.83.zip) & 64-bit (https://files.1f0.de/lavf/LAVFilters-0.83-x64.zip)
Download 3D Plugin: 32-bit (https://files.1f0.de/lavf/plugins/libmfxsw32-v3.7z) & 64-bit (https://files.1f0.de/lavf/plugins/libmfxsw64-v3.7z)

Debug Symbols: 32-bit (https://files.1f0.de/lavf/LAVFilters-0.83-symbols.zip) & 64-bit (https://files.1f0.de/lavf/LAVFilters-0.83-x64-symbols.zip)
The debug symbols can be used to help determine the cause of crashes, usually you only need them when trying to create a crash dump.

You can find the slightly modified/tuned version of ffmpeg used for LAV Filters here:
https://gitea.1f0.de/LAV/FFmpeg

Nightly testing builds are available here:
https://files.1f0.de/lavf/nightly/

Previous releases are available on GitHub:
https://github.com/Nevcairiel/LAVFilters/releases

Changelog
0.83 - 2026/08/17 - Release Notes (https://forum.doom9.org/showthread.php?p=2033821#post2033821)

LAV Splitter
- Fixed: Various stability improvements for Dolby Vision Enhancement Layer processing
- Fixed: Matroska files would only show the first 64 tracks

LAV Audio
- Fixed: Minor timing corrections for TrueHD Atmos bitstreaming


For the full changelog, see CHANGELOG.txt (https://github.com/Nevcairiel/LAVFilters/blob/master/CHANGELOG.txt) in the download!

nevcairiel
14th August 2010, 14:55
Known issues

Audio Decoder
- DTS Express and other "core-less" DTS-HD streams cannot be bitstreamed

Frequently asked Question

Q: Will you write a Subtitle Filter?
A: Its possible, nothing has been determined yet. But its not likely going to be anytime soon.

Q: Can LAV Audio decode DTS-HD?
A: Yes! As of 0.65 DTS-HD is fully supported!

Q: I do not get any audio when using ffdshow as a post processor. What gives?
A: When using ffdshow as post-processor, under some circumstances, you might need to force ffdshow to only use one output format. In this case, i recommend turning off all output formats in ffdshow, except one, preferably either 24-bit int or 32-bit float.

Q: GraphEdit crashes after i installed LAV Video!
A: This is a GraphEdit bug. It will crash as soon as one filter supports more then 100 formats. There is nothing to be done. Personally, i suggest using GraphStudio instead!

Building LAV

Building LAV requires Visual Studio 2015 Update 3, and a recent version of mingw-w64 GCC with a MSYS environment and YASM.

You can get the GCC i use to compile here: http://files.1f0.de/mingw/
I recommend to combine it with MSYS2, or a MSYS package from XhmikosR (http://xhmikosr.1f0.de/tools/msys/)

b66pak
14th August 2010, 16:38
thanks a lot...
_

pdanpdan
14th August 2010, 19:07
I only tested it for mkv with h264 video and multiple AAC audio tracks and subtitle tracks. Everything seems to work fine, except:
I found 2 problems
- the track title is not displayed anywhere (even though this filter shows much more info than any other)
- in mkv files, the default track flag is not respected
And a request:
- can you please implement stream selection order priority by language list?

Thank you,
PDan

nevcairiel
14th August 2010, 19:16
Smart stream selection is not implemented yet, but that will be done, including configurable language priorities and default/forced flags.
Name of the streams is one thing on my list as well, right now the whole stream naming just dumps the descriptive codec info from libavformat into there.

liquidskin76
14th August 2010, 23:30
Hey nev,

About to test now. Can't wait to see the finished splitter and see it in mpc-hc!

Are mkv chapters supported yet? Also, how about sup and sub/idx subtitles?

Thanks

nevcairiel
15th August 2010, 08:45
Chapters are not yet supported, but thats one of the things to do next.
For the subtitles, well, try it. If it works, yay, if it doesnt, send me a sample =)

nevcairiel
15th August 2010, 18:08
LAVFSplitter 0.3
- Added Chapter support
- Improved stream descriptions
- 64-bit support

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.3.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.3-x64.zip)

Sebastiii
15th August 2010, 18:16
Thanks Nev :)

_xxl
15th August 2010, 19:28
Great work! LAVFSplitter could be added to MPC-HC?:thanks:

nevcairiel
15th August 2010, 19:35
Its the plan to replace the majority of the internal splitters in MPC-HC at some point when its more complete. :)

_xxl
15th August 2010, 19:45
I had just tested LAVFSplitter 0.3 with MPC-HC 2235 (VS 2008 build) and some random XVID in avi sample. Internal avi splitter is disabled. MPC-HC stops responding when I try to exit, also it takes a lot time to seek. Thanks for your work!

nevcairiel
15th August 2010, 19:53
Are you sure its really using it? AVIs have generally always worked rather good.
You can check the filters menu, if the last entry has a sub menu that shows streams, its probably active, as no other avi splitter does that.
Also, x86 oder x64?

stax76
15th August 2010, 19:58
Exiting news, thanks a lot. Would it be possible to configure which formats it should handle?

nevcairiel
15th August 2010, 19:59
Yes, that will be in there as well. I'll build a typical property page for the filter where you can select what formats it should be handling, and some other options for preferred languages, and similar things.

tetsuo55
15th August 2010, 20:00
_xxl, please provide a sample too if you can

@all, think of this as a full replacement with all the features the current splitters have.
But its only a begin, and obviously not everything is in there yet.

nevcairiel
15th August 2010, 21:21
I had just tested LAVFSplitter 0.3 with MPC-HC 2235 (VS 2008 build) and some random XVID in avi sample. Internal avi splitter is disabled. MPC-HC stops responding when I try to exit, also it takes a lot time to seek. Thanks for your work!


I found the issue why it was causing MPC-HC to freeze on shutdown, fixed for next version, sorry about that.
Still wondering why your seeking was slow. Seems pretty good for AVIs for me.

STaRGaZeR
15th August 2010, 21:47
Looks awesome, keep pushing it!

Underground78
15th August 2010, 21:53
@all, think of this as a full replacement with all the features the current splitters have.
But its only a begin, and obviously not everything is in there yet.

Really interesting ! I understand why all the slitters related bug reports have been assigned to nevcairiel now ...

I will test if the issues I reported earlier about the MPEG TS Splitter are fixed with the new splitter. Thank you very much for your work nevcairiel ! :)

STaRGaZeR
15th August 2010, 22:47
Only 1 pin per stream type (video, audio, subs) + stream switching = win ;)

STaRGaZeR
16th August 2010, 01:12
Impressions after some light testing:

- SSA, ASS, PGS subtitles don't work (in MKV)
- Stuttering when opening videos, disappears after a few seconds. Sometimes it happens after a seek too
- MKV default flags are ignored
- MP4 files hang MPC without displaying a single frame
- Needs an option for "No subtitles", like Haali

ffdshow as decoder.

nevcairiel
16th August 2010, 07:13
- SSA, ASS, PGS subtitles don't work (in MKV)

Subtitles haven't been tested extensively, i know that TEXT subtitles work, although i thought i saw PGS work as well.
I don't usually watch stuff with subtitles, do you have a sample with ASS and/or SSA? They seem to only really be used with animes, some area of videos that i don't watch and/or have at all.
Edit: nvm, i found a ssa sample on some matroska page.


- Stuttering when opening videos, disappears after a few seconds. Sometimes it happens after a seek too

I saw that too occasionally. I might have an idea whats causing this and how to fix it, but i'm not 100% sure. It never was really extreme for me that it would really annoy me. I'll keep an eye on it.


- MKV default flags are ignored

Like i said in an earlier post, smart selection of streams is not implement yet. It'll just pick the first stream of every type.
Once thats implemented it'll respect default and forced flags in addition to language priorities. Hopefully everything in a sane manner. ;)


- MP4 files hang MPC without displaying a single frame

What video codec? What audio codec? Sample? :)
I tested on some MP4 with h264 video, not sure what audio codec was in there, though.


- Needs an option for "No subtitles", like Haali

Indeed, i wanted to get this in the last version, but it somehow slipped by.

Thanks for your testing.

liquidskin76
16th August 2010, 08:11
- Stuttering when opening videos, disappears after a few seconds. Sometimes it happens after a seek too

I can confirm this one too. Stuttering can last as long as a few seconds. That and the crash when closing bug are the only 2 bugs i've come across so.

DTS-HD appears to be working fine!

All my tests are limited to mkv/h264.

STaRGaZeR
16th August 2010, 13:00
Subtitles haven't been tested extensively, i know that TEXT subtitles work, although i thought i saw PGS work as well.
I don't usually watch stuff with subtitles, do you have a sample with ASS and/or SSA? They seem to only really be used with animes, some area of videos that i don't watch and/or have at all.

I was using ffdshow subtitle filter. Indeed plain text subs are working. The problem with ASS and PGS may be that the splitter it's not correctly formatting the output data. I guess this because when changed to ASS/PGS tracks I get ocasional text on screen, like ·"·"$·"$%"!"!·"$&&/((, with the same font, location, etc. Looks like ffdshow still thinks it's receiving plain text subs.

Like i said in an earlier post, smart selection of streams is not implement yet. It'll just pick the first stream of every type.
Once thats implemented it'll respect default and forced flags in addition to language priorities. Hopefully everything in a sane manner. ;)

Yup, just testing the stuff. Haali looks like a great reference for this (without its bugs :p)

What video codec? What audio codec? Sample? :)
I tested on some MP4 with h264 video, not sure what audio codec was in there, though.

Sure, sample here (http://www.mediafire.com/?6zbphx7h6rzr6vb). All of them are H.264+AAC, your typical MP4 file. It's 5 years old, but newer ones behave the same here.

Oh and another suggestion for when you implement the property page, a bitrate graph would look great, I've always found Haali's one very informative.

This splitter is going to be a bomb when it's finished ;)

hoborg
16th August 2010, 13:04
Hm, i got cannot register message - missing module.
Should this splitter be working on WinXP?

BTW, there is no problem to register MPC-HC filters...

nevcairiel
16th August 2010, 13:05
You need the VS2010 runtime (link in the first post), but yes, its working on my work laptop which runs XP.

hoborg
16th August 2010, 13:08
You need the VS2010 runtime (link in the first post), but yes, its working on my work laptop which runs XP.

Oh, i missed that...
:thanks:

EDIT:
Here is my quick tests:

Nearly all of my video samples will freeze Graphstudio on end of video or if i stop playback, some videos freeze durning playback.
I can post samples if interested.

RealMedia seems to be not supported.

Do you have plan to add support for pure audio formats too (like FLAC, DTS, MPC, AC3)?

But great work, even lot of MOV files are now splitted corectly :)

nevcairiel
16th August 2010, 13:49
The freeze issue will be fixed in the next version. And yeah, real is a messy format, while it seems to detect the streams just fine, i cannot get it to connect to the realmedia decoders. Silly things!

I'm not sure how pure audio formats behave right now. I do assume in some places that i have a video stream, or at least i think i do. I'll check that. :)

I'll try to fix some subtitle issues and push out a new version later today, so the freeze bug is no longer annoying everyone.. :)

roozhou
16th August 2010, 14:32
@nevcairiel
Why is there a 4M+ avcodec-52.dll in your package? It is as big as libavcodec.dll in ffdshow. Can you remove some unused codecs and optimized assembly functions for a smaller package?

nevcairiel
16th August 2010, 14:42
Not 100% sure what happens when i remove codecs, i believe avformat uses them to probe input formats. Sure, its a bit wasted space, but ultimately the goal is to integrate this into MPC-HC, which already has avcodec.
Its not something i really worry about at this point in time. Maybe later on i can look into slimming this down.

tiben20
16th August 2010, 18:22
for the build size it might be the --enable-runtime-cpudetect that make the binary so big. I'm not sure if its really needed but there only one way to figure it out :P

nevcairiel
16th August 2010, 18:43
I wasn't sure what would happen if i compile it on my i7 and then someone runs it on a cpu without sse4 for example, so i turned it on. I could of course turn all the optimizations off, i don't think avformat uses them much, thats more of a codec thing.

nevcairiel
16th August 2010, 19:22
LAVFSplitter 0.4
- Improved SSA Subtitle support
- Fixed freeze-on-stop issue

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.4.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.4-x64.zip)

Please test, especially subtitles! Thanks! :)
Sadly the "No Subtitles" option once again eluded me, but i wanted to get this one out today because of the freeze issue. Next version, i promise!

roozhou
16th August 2010, 19:26
@nevcairiel
CPU type is determined by -march in --extra-cflags. I use "-march=athlon-xp -mfpmath=sse" and it will run on Pentium3, Athlon-xp and all later CPUs. "--disable-encoders --disable-runtime-cpudetect --disable-asm" will greatly reduce binary size.

nevcairiel
16th August 2010, 19:54
@nevcairiel
CPU type is determined by -march in --extra-cflags. I use "-march=athlon-xp -mfpmath=sse" and it will run on Pentium3, Athlon-xp and all later CPUs. "--disable-encoders --disable-runtime-cpudetect --disable-asm" will greatly reduce binary size.

Thanks! I already had encoders disabled, and turning off asm and runtime-cputdetect made the files about 10% smaller again. Its still a total of over 4MB though.

STaRGaZeR
16th August 2010, 20:07
LAVFSplitter 0.4
- Improved SSA Subtitle support
- Fixed freeze-on-stop issue

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.4.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.4-x64.zip)

Please test, especially subtitles! Thanks! :)
Sadly the "No Subtitles" option once again eluded me, but i wanted to get this one out today because of the freeze issue. Next version, i promise!

Freeze-on-stop fixed, SSA/ASS working fine now :)

However, there's still something missing: fonts included in MKV. SSA/ASS subs that use fonts included in the MKV are displayed in the default subtitle renderer font, which is in most cases Arial.

nevcairiel
16th August 2010, 20:10
However, there's still something missing: fonts included in MKV. SSA/ASS subs that use fonts included in the MKV are displayed in the default subtitle renderer font, which is in most cases Arial.

Yeah, about that..
How do i tell the subtitle renderer about that font, exactly?
What do other splitters do? Just install the font system-wide?

Also, i would need a sample with this, as i don't have one.

BTW:
Can you test PGS as well? It seemed to work fine on my sample.

JarrettH
16th August 2010, 21:20
Can't wait to see this implemented :thanks:

STaRGaZeR
16th August 2010, 22:10
Yeah, about that..
How do i tell the subtitle renderer about that font, exactly?
What do other splitters do? Just install the font system-wide?

Also, i would need a sample with this, as i don't have one.

BTW:
Can you test PGS as well? It seemed to work fine on my sample.

Dunno, but they don't install the font, or at least it isn't in Windows/Fonts after or during playback.

Famous sample in this post: http://forum.doom9.org/showthread.php?p=1209289#post1209289

The issue with PGS is interesting. I have a MKV with SRT and PGS, the first track is SRT. If I play it, SRT subs look good. But, if after displaying a single SRT line I switch to the PGS track, I get this: http://img84.imageshack.us/img84/9356/avatarmq.png. Now, if just after opening the sample I switch to the PGS track, PGS subs look fine. But again, if I switch to the SRT track, nothing will appear. Stream switching bug here it seems.

Sample here: http://www.mediafire.com/?ucid8fzk282jm8b

Underground78
16th August 2010, 22:54
Hello,

I've started to test the new splitter with this the sample available in this ticket : [MPEG PS/TS/PVA Splitter] Switching between audio tracks is not immediate (http://sourceforge.net/apps/trac/mpc-hc/ticket/327). The bug report is also valid with LAVFSplitter 0.4, switching between the audio tracks takes much more time than it does when playing with VLC.

There is also a new bug that appears with the same sample (TS - MPEG2 - ffdshow) : seeking is not possible.

Hope it will help improving this promising new splitter. :)

Ger
16th August 2010, 23:06
This thread is very welcome news. :thanks:

I've prepared a batch of 6 TS samples recorded from different Scandinavian DVB channels and one feed, highlighting a few issues. Not all issues are directly splitter related, but I thought I'd include everything for reference. May be useful.

In addition to the samples, there are some screenshots included from other players (VLC and DVBViewer) explaining what is correct and what is wrong.

There is also a text file with further explanations of common issues and of each individual sample, with results from my tests with various splitters/decoders/players.

Some bugs and missing features are also pointed out in the internal MPC-HC and ffdshow H264 DXVA decoders and the MPC-HC MPEG-2 decoder and DVB-subtitle renderer (and even a few issues in Haali splitter, VLC and DVBViewer). If other MPC-HC devs (or the project manager) wants to download the samples to look at these decoder/subtitle issues, please do so. I have not posted any of these issues (including the splitter issues) to the bug tracker yet (I just finished writing this up and recording samples today). So unless someone else have already posted these bugs with different samples, they are not there. I will try to add them there eventually, but I don't know yet when I'll have time for that. So feel free to grab the samples and/or add your own bug reports/tickets in the meantime.

All TS recordings seem to have one important issue in common with the new LAVFSplitter: The duration is wrong (example: the HD sample is reported as over an hour long, but is just over a minute in reality) and the MPC-HC slider doesn't work. Probably related issues.

Most other splitter issues are subtitle related, one is audio related, and there are some aspect ratio issues.

I haven't really tested the responsiveness (when skipping etc.) compared to Haali/Gabest splitters yet because of the freezing issues in v0.3, and the fact that the slider isn't working yet, so I'll save that for another day.

Sharebee 145 MB multipart rars: Part1 (http://sharebee.com/660b792b) - Part2 (http://sharebee.com/370dd3be) - Part3 (http://sharebee.com/d4bbe007)
or
Megaupload single 340 MB file: TS-Samples-2010-08-18.rar (http://www.megaupload.com/?d=YOOL90PV)

All LAVFSplitter tests are with version 0.3. BTW thanks for fixing the freeze issue in 0.4 which was admittedly a little annoying during the testing. :)

Anyway, good luck with the new splitter. Hopefully everything you need to know about the samples is explained in the screenshots and the text file. Feel free to ask if it isn't or if you need more samples/testing.

Edit: Didn't see Underground78's post when i posted, but it seems to address some of the same issues.

Edit2: Made a copy/paste mistake in the text file. The test results for the 4:2:2 sample was wrong (that particular sample is not splitter related or aspect ratio related - only a comparison of MPEG-2 decoders, if they support MPEG-2_422 or not). Fixed text file (only) here (http://www.mediafire.com/?f6q3658gfa3z68j). Will also re-upload a full sample pack with the fixed text file, but it will take a few hours.

Edit3: Replaced the single rar zshare file with a multipart rar on Sharebee (fixed text included). Also a single file Megaupload alternative.

nevcairiel
17th August 2010, 07:32
Now, if just after opening the sample I switch to the PGS track, PGS subs look fine. But again, if I switch to the SRT track, nothing will appear. Stream switching bug here it seems.

This is weird. The splitter does send the new media type in the next packet after the switch, which the filter should pick up and act accordingly. I'll test this, i don't think i actually had a sample with different sub types before, so thanks!

[MPEG PS/TS/PVA Splitter] Switching between audio tracks is not immediate (http://sourceforge.net/apps/trac/mpc-hc/ticket/327). The bug report is also valid with LAVFSplitter 0.4, switching between the audio tracks takes much more time than it does when playing with VLC.
Fixed this, a silly bug was breaking proper audio stream switching. It'll now stop the graph and reconnect the audio filter, so that media type changes are handled properly. This will however cause a brief interruption of playback - but then, you don't change audio streams while watching, you change them once and then watch. :)

For the broken seeking, i don't know.
If the duration is reported wrong, its a bug in libavformat itself, and would explain the broken seeking.
I can imagine this happening with files that were cut out of a big file. Are your samples out of a file that had the original length before, by any chance?

Underground78
17th August 2010, 07:59
Fixed this, a silly bug was breaking proper audio stream switching. It'll now stop the graph and reconnect the audio filter, so that media type changes are handled properly. This will however cause a brief interruption of playback - but then, you don't change audio streams while watching, you change them once and then watch. :)

Thank you for looking at this !

For the broken seeking, i don't know.
If the duration is reported wrong, its a bug in libavformat itself, and would explain the broken seeking.
I can imagine this happening with files that were cut out of a big file. Are your samples out of a file that had the original length before, by any chance?

Well all the TS files I deal with are DVB-T captures but MPC-HC internal splitter does report the correct length for the sample #327 for example.

hoborg
17th August 2010, 08:01
Updated with 0.8
Hi.
i did some more test with 0.8.

Some FLV cannot be split, they have blackscreen or play at wrong speed (noticed if they are VBR based) All of them working fine using Cyberlink FLV spliter, VBR problem can be reproduced if MPC FLV splitter is in use.

Some MPG files not working corectly, there are coruption on begin or they fail to start playback (no such problems when using "MPC - Mpeg Splitter (Gabest)"
Coruption:
http://hobring.esero.net/saf/lavf/bugs0.7/mpg.coruption.jpg

All problematic samples can be downloaded here (http://hobring.esero.net/saf/lavf/bugs0.7/).

STaRGaZeR
17th August 2010, 11:53
This is weird. The splitter does send the new media type in the next packet after the switch, which the filter should pick up and act accordingly. I'll test this, i don't think i actually had a sample with different sub types before, so thanks!

Do you stop the graph and reconnect when switching subtitles like you do now with audio? That would ensure proper handling of the new format. Haali does this for all kind of tracks right?

nevcairiel
17th August 2010, 12:18
Do you stop the graph and reconnect when switching subtitles like you do now with audio? That would ensure proper handling of the new format. Haali does this for all kind of tracks right?

I tried to do this, but there were complications, so currently its not doing this. Its basically doing what the gabest Mpeg splitter does, it just sends the new pin media type and starts sending new data.

Its on my list to try to get to work again.

STaRGaZeR
17th August 2010, 12:32
I think that's the best solution. Changing the media type and wait for the decoder to adapt itself is just asking for trouble. It could work with one filter but not with another. Thanks for looking into it :)

Ger
17th August 2010, 12:53
For the broken seeking, i don't know.
If the duration is reported wrong, its a bug in libavformat itself, and would explain the broken seeking.
I can imagine this happening with files that were cut out of a big file. Are your samples out of a file that had the original length before, by any chance?
All six samples I posted are recorded "as is" from regular TV-channels (plus one 4:2:2 feed), either using Dreambox or DVBViewer. None of them are cut or treated in any way after recording. So they should be "run of the mill" TS files in that sense.

All are reported as zero-length in MPC-HC+LAVFsplitter 0.4, except the HD sample which is reported as over an hour long when it's actually just over a minute.

The slider does work on the HD sample, but is still wrong because it thinks the clip is much longer than it is, so yes, I'm pretty sure the slider will fix itself for all samples once the duration is corrected. Feel free to use my samples as you wish, if you want to pass some upstream to libavformat devs.

Gabest/Haali/Mediainfo all get the duration right, but Haali also gets other stuff (ie. aspect ratio) right more often than Gabest. Haali has a default setting set to scan 45000 TS packets, which seems to work well, but don't how relevant that is.

nevcairiel
17th August 2010, 14:17
I think that's the best solution. Changing the media type and wait for the decoder to adapt itself is just asking for trouble. It could work with one filter but not with another. Thanks for looking into it :)

Well, audio is a bit different in that regard, as the audio decoder filter can change between streams. So i delete it and let the GraphBuilder rebuild the graph.

Now with subtitles and ffdshow.. I can't do the same, as ffdshow is also the video decoder, and deleting that one isn't working out too good. But then, i don't really have to, as basically all subtitle renderers i know are used for all kinds of subtitles. So i'll see if i can just disconnect the pin and cause a reconnect that will make the filter initialize itself again without doing the full delete magic.

Sadly this area isn't really covered by any documentation i found, and all other splitters that seem to handles this properly are closed source, so bear with me while i try different approaches. =)

nevcairiel
17th August 2010, 16:58
I found the problem with TS file durations, was kinda a "oops" on my side, heh. :)
And like expected seeking is working fine with the proper durations.

@Ger:
Man that zSHARE page is a mess.
Still downloading.... previously it just stopped at 20% or so and i had to restart. If it does that again, screw it =P
How about splitting the files and uploading to rapidshare or something?

Underground78
17th August 2010, 17:30
I found the problem with TS file durations, was kinda a "oops" on my side, heh. :)
And like expected seeking is working fine with the proper durations.

Great ! :)

Ger
17th August 2010, 18:26
I found the problem with TS file durations, was kinda a "oops" on my side, heh. :)
And like expected seeking is working fine with the proper durations.
Great.

@Ger:
Man that zSHARE page is a mess.
Still downloading.... previously it just stopped at 20% or so and i had to restart. If it does that again, screw it =P
How about splitting the files and uploading to rapidshare or something?

I'll try to create multipart rars < 150 MB or something like that, and upload to sharebee (which should distribute to several other services). But it will take a few hours because of my slow upload speed.

nevcairiel
17th August 2010, 18:56
I'll try to create multipart rars < 150 MB or something like that, and upload to sharebee (which should distribute to several other services). But it will take a few hours because of my slow upload speed.

I finished the download now, so don't worry about it.

Regarding your files:

LATM AAC is not supported by libavformat at all right now, someone will have to implement this, so no deal on audio. Trying to get subtitles to work, but ffdshow subtitle renderer doesnt even connect to the DVB subtitles, wonder if MPC does..

Ger
17th August 2010, 19:13
MPC-HC does show DVB-subs (Casimir added this not too long ago IIRC) with the internal splitter, but wrong background color (green instead of semi-transparent grey in the John Adams sample). That is probably not a splitter issue though. DVB subs with a fully transparent background (Bulgarian etc. in the Henry IV sample) seems OK with internal splitter/renderer (not tested thoroughly though).

TTX subs probably need a Teletext decoder, which I doubt MPC-HC has currently, but it would be nice if the splitter identified both the DVB and TTX subtitle tracks correctly anyway.

nevcairiel
17th August 2010, 19:21
I'm just having it ignore TTX for now, as i don't really know what to do with them.

EDIT:
DVB subs work, yay.
Now i just need to find the difference in the flags for your hearing impaired thing and i'm all done.

EDIT2:
Ok, i arrived at that sample with subs in both DVB and TTX, but how exactly am i supposed to figure out if its a TTX sub or some other TTX stream that i don't want to show?
This puzzles me! For now i'm just showing the 3 DVB sub tracks.

tetsuo55
17th August 2010, 19:40
You guys could use megaupload.com in the future, it offers a high upload and download speed and supports files up to 1gb iirc

Ger
17th August 2010, 19:51
EDIT2:
Ok, i arrived at that sample with subs in both DVB and TTX, but how exactly am i supposed to figure out if its a TTX sub or some other TTX stream that i don't want to show?
This puzzles me! For now i'm just showing the 3 DVB sub tracks.

It's over my head, but if you look at the "Whatever works" sample in VLC, or the screenshot I've included, VLC can tell the difference between TTX index pages and TTX subtitles with a valid language code. So perhaps you can peek at the VLC code? Unless a teletext decoder is required for that part (I have no clue).

@Tetsou55
Thanks. I'll try to remember that for future use.

STaRGaZeR
17th August 2010, 20:35
so bear with me while i try different approaches. =)

Ofc :)

but ffdshow subtitle renderer doesnt even connect to the DVB subtitles, wonder if MPC does..

ffdshow doesn't support DVB subs, MPC does.

naomatrix
18th August 2010, 00:29
Thank you for the splitter , great job.

Stuffed in a Pot 1.5.23507Ru place MKV / WebM, AVI, MP4/MOV, TS/M2TS/MPG, FLV, drove on the test files at 1080p (720p) BDrip everything seems Ok
Of course there is for 0.4 versions are still drawbacks - no graphical interface, yet buggy to switch audio and subtitle roads, more slowly shifts.
But there is a big plus, correctly sees and connects the sound of the road (TrueHD, DTS MA), as well, and I'm very pleased so far the world's only splitter that correctly identifies the audio format AAC + + HEv2 SBR PS 2ch (5.1ch). Believe me I've tried a lot of splitters and decoders AAC (6 pieces) all spoke HE SBR 2ch PS (parametric stereo) as mono, only LAVFSplitter correctly identifies.

Good luck

Ger
18th August 2010, 01:02
I did some digging, and don't take my word for it (my understanding is limited), but there may be something of interest here:

Regarding the hearing impaired flags in DVB-subs: Page 38 and 73 (http://www.etsi.org/deliver/etsi_en/300400_300499/300468/01.11.01_60/en_300468v011101p.pdf).
Teletext subs vs non-subs: Page 8 (http://www.etsi.org/deliver/etsi_en/300400_300499/300472/01.03.01_60/en_300472v010301p.pdf).

Both found here (http://www.dvb.org/technology/standards/).

If that doesn't help, I guess VLC git or Enigma2 git.

nevcairiel
18th August 2010, 10:01
I did some research, and it seems that i can even get LATM AAC to work. It was only disabled in libavformat because libavcodec does not support it, but for example libfaad does.
This will have to wait until i setup my own ffmpeg repository with some custom patches though, so not 0.5 i'm afraid.
I hope to get 0.5 out today with the fixes for TS durations, DVB subs, audio/subtitle stream switching, the "No Subtitles" option and possibly some other small things, but for now i'm still stuck at work, so don't hold your breath, it'll be a few hours.

Speaking about AAC, does anyone know if the populare AAC decoders (ffdshow, mpc-hc internal, CoreAAC, ...) understand the HEAACWAVEFORMAT structure, or if they require everything being packed up in a WAVEFORMATEX?
Edit: I just noticed that CoreAAC does not have LATM support yet, so i guess the monogram decoder will have to do. :)

tetsuo55
18th August 2010, 10:26
Yeah a custom ffmpeg "fork" sounds like a good idea, that way work can be done on the various patches we have/intend to create and clean them up if/before they are committed upstream

Ger
18th August 2010, 17:17
I did some research, and it seems that i can even get LATM AAC to work. It was only disabled in libavformat because libavcodec does not support it, but for example libfaad does.
This will have to wait until i setup my own ffmpeg repository with some custom patches though, so not 0.5 i'm afraid.
I hope to get 0.5 out today with the fixes for TS durations, DVB subs, audio/subtitle stream switching, the "No Subtitles" option and possibly some other small things, but for now i'm still stuck at work, so don't hold your breath, it'll be a few hours.

Wow, didn't expect that. Sounds promising. If we get a free DS splitter working for LATM, the chances of seeing LATM support added to ffdshow/MPC-HC decoders should improve as well, since libfaad is used for AAC both places already. But Monogram-AAC should be fine in the meantime.

Take your time. Some of us have waited years for a project like this, so we can certainly wait a little longer. Thanks again. :)

Underground78
18th August 2010, 17:22
I hope to get 0.5 out today with the fixes for TS durations, DVB subs, audio/subtitle stream switching, the "No Subtitles" option and possibly some other small things, but for now i'm still stuck at work, so don't hold your breath, it'll be a few hours.

Sound like version 0.5 will be a great step ! I will wait for it before continuing my test with others samples. :)

Sebastiii
18th August 2010, 17:59
Congrats again for your great job :)
Seb.

nevcairiel
18th August 2010, 19:45
LAVFSplitter 0.5
- Fixed duration of MPEG-TS files
- Added support for DVB subtitles
- Fixed switching of Audio and Subtitle Streams
- Added a "No Subtitles" Stream

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.5.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.5-x64.zip)

I hope the stream switching works properly now. The current approach works as follows: For Audio Streams, it deletes the current audio decoder, and lets the graph choose a new one, this ensures that we always get the right codec. For Subtitles (and Video), i just disconnect the filter, and let the graph reconnect itself. This seems to work fine so far. Feedback is appreciated. =)

On the DVB Subs: It can't detect the difference between normal and hearing impaired yet, thats still on my list of things to do.

liquidskin76
18th August 2010, 19:52
Hey nevcairiel,

I haven't had chance to test 0.5 yet, but was curious if the stuttering when begining a vid has been fixed? I was still seeing it with 0.4.

Thanks

nevcairiel
18th August 2010, 19:54
Did you see it in the changelog? :d

I'll try to get that one on the weekend when i have more time to try some things.

Underground78
18th August 2010, 19:57
LAVFSplitter 0.5
- Fixed duration of MPEG-TS files
- Fixed switching of Audio and Subtitle Streams

Confirmed, thanks a lot ! :)

I hope the stream switching works properly now. The current approach works as follows: For Audio Streams, it deletes the current audio decoder, and lets the graph choose a new one, this ensures that we always get the right codec. For Subtitles (and Video), i just disconnect the filter, and let the graph reconnect itself. This seems to work fine so far. Feedback is appreciated. =)

The audio part does work very well but I cannot get the DVB subtitles to work ... It may be me doing something wrong, can someone tell me what I should do exactly to ensure MPC-HC can display subtitles without problems ?

nevcairiel
18th August 2010, 20:01
Use one of the supported renderes, on XP that would be VMR9 (renderless), on Vista/7 EVR-CP, it should just magically work then. Additionally during playback check the "Play -> Subtitles" menu if Enabled is ticked
Oh, and the splitter currently defaults to the "No Subtitles" stream, so you need to turn them on, but i think you figured that out.

Underground78
18th August 2010, 20:22
Use one of the supported renderes, on XP that would be VMR9 (renderless), on Vista/7 EVR-CP, it should just magically work then. Additionally during playback check the "Play -> Subtitles" menu if Enabled is ticked
Oh, and the splitter currently defaults to the "No Subtitles" stream, so you need to turn them on, but i think you figured that out.

Thanks, I had forgotten to use WMR9 (renderless) ... It seems to work ! :)

Ger
18th August 2010, 20:50
Some quick v0.5 first impressions:
- MPC-HC crashes when seeking in TS. Not always, but often. Mostly tested with the "Henry IV" sample and is easily reproduced with that sample on my system, but also seen with other samples.
- When enabling DVB-subs in "John Adams" sample, the video freezes. Don't know if this is related to the missing audio support.
- When enabling DVB-subs in "Henry IV" sample, quick video audio freeze, but then resumes and works, so I guess that is expected with the graph reconnecting on change. Would be ideal if it could be enabled seamlessly, but it's probably no big deal if it stays like this.
- TS duration is better (in most cases), but still not OK. HD sample duration is very wrong. I have another HD, sample here which doesn't play at all now, but the previously uploaded "Gossip Girl" HD sample (which is really just over a minute long and was reported as over an hour long in v0.3) is now reported as over 7 hours long in v0.5, but it plays. I don't think there is any point in uploading the other HD sample that doesn't play at all anymore in case it's duration related, and you can see the duration problem in the "Gossip Girl" sample as well.

nevcairiel
18th August 2010, 20:55
- MPC-HC crashes when seeking in TS. Not always, but often. Mostly tested with the "Henry IV" sample and is easily reproduced with that sample on my system, but also seen with other samples.
I can't really reproduce this. Do you use the MPC-HC internal video/audio decoder, or others?
Edit: I just noticed that for some reason the internal mpeg2 decoder doesnt even connect to the stream in the Henry IV sample. Another thing to check out.


- When enabling DVB-subs in "John Adams" sample, the video freezes. Don't know if this is related to the missing audio support.

A short freeze is to be expected, as the graph is stopped to change the stream connections. Here it resumes after that. What do you mean with freeze exactly, does it stay stopped?
Again, what filters?

Ger
18th August 2010, 20:57
Yes, it stays stopped. I'm using EVR Sync, with Sync Video To Display.

Underground78
18th August 2010, 20:57
Some quick v0.5 first impressions:
- MPC-HC crashes when seeking in TS. Not always, but often. Mostly tested with the "Henry IV" sample and is easily reproduced with that sample on my system, but also seen with other samples.
- When enabling DVB-subs in "John Adams" sample, the video freezes. Don't know if this is related to the missing audio support.

I can't confirm this two bugs (I only tried my own samples) but ...

- When enabling DVB-subs in "Henry IV" sample, quick video audio freeze, but then resumes and works, so I guess that is expected with the graph reconnecting on change. Would be ideal if it could be enabled seamlessly, but it's probably no big deal if it stays like this.
- TS duration is better (in most cases), but still not OK. HD sample duration is very wrong. I have another HD, sample here which doesn't play at all now, but the previously uploaded "Gossip Girl" HD sample (which is really just over a minute long and was reported as over an hour long in v0.3) is now reported as over 7 hours long in v0.5, but it plays. I don't think there is any point in uploading the other HD sample that doesn't play at all anymore in case it's duration related, and you can see the duration problem in the "Gossip Girl" sample as well.

... I can confirm those. When switching audio or subtitle there is a little freeze which doesn't seem to exist with VLC and for TS with H264 video track, duration is totally wrong (cf sample : http://www.mediafire.com/?g2xjd4rwa2n). By the way, with this sample I can't get the E-AC3 audio to play (whereas it works with internal splitter), is this expected ?

Ger
18th August 2010, 21:06
With the "John Adams" sample when I first open it, I get a warning about missing audio codec. I click that away and it starts playing (with no audio obviously and with wrong AR). If I then press stop, and play again, it remains frozen. Does that happen with you? This also happens to me with the internal splitter, but not with Haali (stop and play works with Haali).

I'm using Microsoft Win7 decoder (preferred in MPC-HC).

Changing from EVR Sync to EVR Custom didn't seem to change anything.

Problem signature:
Problem Event Name: APPCRASH
Application Name: mpc-hc.exe
Application Version: 1.3.2268.0
Application Timestamp: 4c6c045d
Fault Module Name: StackHash_2b7a
Fault Module Version: 6.1.7600.16559
Fault Module Timestamp: 4ba9b29c
Exception Code: c0000374
Exception Offset: 000cdc9b
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1044
Additional Information 1: 2b7a
Additional Information 2: 2b7a8aec88b183a1d5db4fdf487691fb
Additional Information 3: f18e
Additional Information 4: f18e74554e409b66e4b5aebc55921319


Edit: OK, the freeze on enabling subs and after stop/play depends on the H264 decoder also, as well as the splitter. With ArcSoft decoder that freeze doesn't happen, but video plays at seemingly double speed. Perhaps due to the AnnexB stuff in the first post?

nevcairiel
18th August 2010, 21:13
If I then press stop, and play again, it remains frozen. Does that happen with you?
No, but i also use ffdshow instead of MS, going to test that.
Actually, the AR is correct with ffdshow as well.

The small freeze on stream switches cannot be avoided, its here to stay. Comparing to VLC on this matter is pointless, as the freeze is a result of Direct Show interaction

Edit:
I see the freeze issue with the MS thing as well.

Underground78
18th August 2010, 21:15
The small freeze on stream switches cannot be avoided, its here to stay. Comparing to VLC on this matter is pointless, as the freeze is a result of Direct Show interaction

I has quite sure of your answer, it is ok then. :)

Ger
18th August 2010, 22:15
I just noticed that for some reason the internal mpeg2 decoder doesnt even connect to the stream in the Henry IV sample. Another thing to check out.


Actually, for MPEG-2 video I can't get it to connect to anything except ffdshow now. :confused: If I block ffdshow it refuses all other MPEG-2 decoders on my system.

All my crashes on skipping are in MPEG-2 files, so I guess they must all have been with ffdshow as the video decoder then.

Tried both ffdshow and internal for MPEG audio, and crash with both.

H264 still connects to whatever I set to preferred.

If I missed any questions, ask again. I hope I've answered everything.

Edit: To reproduce the crash, try clicking on different parts of the seek bar in quick succession with MPEG-2 TS samples with ffdshow for video. CTRL-LEFT and CTRL-RIGHT (I think those are the original shortcuts in MPC-HC for jumping a few seconds back/forward) also causes the crash, especially when done in quick succession. I've changed mine to just left/right arrow like in other players so I'm not 100 % sure what the default shortcut is anymore.

STaRGaZeR
18th August 2010, 22:23
No subtitles option, subtitle and audio switching working like a charm, good work.

Minor things I noticed:

- Seeking seems a bit slower than Haali/Gabest, specially with high bitrate Blu-ray content where there's a lot to decode if you don't seek to an I-frame. Same with stream switching, a bit slower. Maybe Haali doesn't reconstruct the entire graph?
- I'd put the no subtitles option always at the bottom of the subtitle streams list, instead of at the top.
- There's nothing in MPC's Navigate -> Audio Language -> ??. Same with subtitles. ffdshow detects the stuff though (it uses IAMStreamSelect).

Kurtnoise
18th August 2010, 22:47
By the way, with this sample I can't get the E-AC3 audio to play (whereas it works with internal splitter), is this expected ?

should be fine with this (http://pastebin.ca/1919682)...;)

tetsuo55
18th August 2010, 22:48
Edit: To reproduce the crash, try clicking on different parts of the seek bar in quick succession with MPEG-2 TS samples with ffdshow for video. CTRL-LEFT and CTRL-RIGHT (I think those are the original shortcuts in MPC-HC for jumping a few seconds back/forward) also causes the crash, especially when done in quick succession. I've changed mine to just left/right arrow like in other players so I'm not 100 % sure what the default shortcut is anymore.Sounds a lot like this decoder bug: http://sourceforge.net/apps/trac/mpc-hc/ticket/135

Underground78
18th August 2010, 22:53
should be fine with this (http://pastebin.ca/1919682)...;)

I don't know much but it would make sens. I think you have made a little typo, correct patch is probably : http://pastebin.ca/1919690 ... :)

naomatrix
18th August 2010, 22:55
OK, now soundtracks and subtitles switches quickly, but the screen at this point flashes black.
And there are new challenges - in PotPlayer(madVR) LAVFSplitter for .avi files does not connect to XVID decoder (also DivX,3viX) only built-in codecs, and on .TS interlaced 1080i MPEG2 (4:2:2) did not see Elecard Mpeg2 HD codec (also DScaler Mpeg2 Video Decoder).
The same problem in the MPC-HC(EVR), only sees the built-in decoders, possibly errors in the players or splitter ?
Another small question, is it possible to make an icon in the tray, as an indicator of spliter's work.
And yet another side issue, there is a problem with Cyrillic fonts in splitter's message.

Thanks.

nevcairiel
19th August 2010, 07:06
OK, now soundtracks and subtitles switches quickly, but the screen at this point flashes black.

Like i said before, this is a side effect of the graph rebuild and cannot be avoided. I tested with Haali, and it does the same, i also get a short interruption of playback. I realize that the switch seems a bit slower then on Haali, but sadly there are no other open-source splitters that do this, so i'm building this from scratch, and seeing how this goes.

I can do one change, and on audio switch try to connect to the old filter. If it accepts the connection, just go with that one. This does however have one drawback. If you, for example, use ffdshow, it can handle most, if not all, audio formats, so once its in use, it would not switch to another decoder, even if it has a higher merit. Is this a real problem? To fix it, you would have to turn the formats you don't want ffdshow to handle off in its configuration, but not every filter supports this kind of configuration.
For me it would be fine, as i use ffdshow for most formats, and ffdshow supports turning off the formats i don't want, but i realize not everyone uses a simple setup like this.
I might make this behaviour configurable once i have a property page.

I'll look into the issue with mpeg2 decoder connections, its probably a simple thing thats wrong in the format header.

Btw. MPEG-TS is such a screwed up format, no wonder there is no good reference splitter for it.

tetsuo55
19th August 2010, 09:00
I can do one change, and on audio switch try to connect to the old filter. If it accepts the connection, just go with that one. That actually sounds like a good idea for all the streams? do you think that is possible?

Also, the slower seeking might be partially caused by time based seeking vs keyframe based, maybe that should be ruled out first?

nevcairiel
19th August 2010, 09:04
That actually sounds like a good idea for all the streams? do you think that is possible?

Video and Subtitles already do this, as replacing the video decoder causes some issues, and the subtitle decoder is usually linked to the video decoder/renderer in some way.

Also, the slower seeking might be partially caused by time based seeking vs keyframe based, maybe that should be ruled out first?
MPEG-TS doesn't offer an easy way to get the keyframes like MKV does, this will need some custom magic to figure out where the GOP borders are.

tetsuo55
19th August 2010, 09:04
God MPEG-TS sucks :(

naomatrix
20th August 2010, 01:00
I tested the LAVFSplitter on this set of files http://thepiratebay.org/torrent/5155837/HDTV_test_files_%28v1.7%29 in PotPlayer/LAVF/MadVr/(XP SP3;Athlon64X25600+/Nvidia9800GT/LCD1400x900)
Overall not bad but there are exceptions:
in file 00019.m2ts (Interlace) splitter can not connect the LPCM audio track to any decoder, indicates error, while Haali quietly connects ffdshow audio decoder;
in VC-1_Sub.mkv does not connect to WMVideoDecoderDMO for "WVC1" FOURCC, like any other except the Pot's built-in(FFmpeg);

That's all, thank you

kieranrk
20th August 2010, 01:37
MPEG-TS doesn't offer an easy way to get the keyframes like MKV does, this will need some custom magic to figure out where the GOP borders are.

MPEG-TS has a keyframe flag in the header.

nevcairiel
20th August 2010, 13:33
Okay, a little status update on MPEG-TS support.

The remaining duration problems are bugs in libavformat. You can easily verify this yourself when running the files through ffplay or ffprobe (i can provide binaries later). TS isn't the best supported format in avformat, sorry.
I have some plans in mind that might improve this situation, but i don't want to go into specifics just yet. It probably will be some time before you hear of this again, so much stuff to do first!

I'm working on a fix for the MPEG-2 headers to properly connect to other filters, and i'll try to fix VC-1 to work with the MS DMO decoder. About the MPEG2 crash .. i'll try to reproduce this first.

Also, i haven't forgotten about all the non-TS bugs, and i'm looking at them too.

hoborg
20th August 2010, 13:37
I updated my post (http://forum.doom9.org/showthread.php?p=1426670#post1426670) - tested on 0.5 now.

Virtual_ManPL
20th August 2010, 13:56
Finally someone make splitter from scratch to replace buggy Haali and not developed Gabest splitter :devil:

Feature request:
1. Tray icon to easily manage streams and chapters (like in Haali)
2. Support for indexless, metadateless or other broken or unfinished files
3. Ogg splitter


Bugs:

1.
Unicode support is missing
http://img801.imageshack.us/img801/2006/unicode.png


2.
Audio isn't recognized in this file
DOWNLOAD (http://www.mediafire.com/?o39248xrjxxicyk)

Error in MPC-HC
C:\Documents and Settings\Virtual_ManPL\Pulpit\Lovers End [H264].mkv::Audio

Media Type 0:
--------------------------
Audio: Vorbis (deprecated) 48000Hz stereo

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {CDDCA2D5-6D75-4F98-840E-737BEDD5C63B}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 256000
cbFormat: 3779

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

pbFormat:
0000: SOME_TOO_LONG_CODE_TO_PASTE_IT_HERE

File info
General
Complete name : C:\Documents and Settings\Virtual_ManPL\Pulpit\Lovers End [H264].mkv
Format : Matroska
File size : 36.6 MiB
Duration : 4mn 14s
Overall bit rate : 1 208 Kbps
Encoded date : UTC 2006-06-09 22:24:38
Writing application : mkvmerge v1.7.0 ('What Do You Take Me For') built on Apr 28 2006 17:20:19
Writing library : libebml v0.7.7 + libmatroska v0.8.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 8 frames
Muxing mode : Container profile=Unknown@5.1
Codec ID : V_MPEG4/ISO/AVC
Duration : 4mn 14s
Bit rate : 1 000 Kbps
Width : 848 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.102
Stream size : 29.1 MiB (79%)
Writing library : x264 core 47 svn-527
Encoding settings : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=hex / subme=7 / brdo=1 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / chroma_qp_offset=0 / slices=1 / nr=0 / decimate=1 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / bime=1 / keyint=250 / keyint_min=25 / scenecut=40 / rc=2pass / bitrate=1000 / ratetol=4.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30
Language : English

Audio
ID : 2
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 4mn 14s
Bit rate mode : Constant
Bit rate : 224 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Stream size : 6.79 MiB (19%)
Writing library : libVorbis 1.1.1/1.1.2 (UTC 2005-03-04)


3.
This file didn't want to play in EVR Custom and in other renderers like VMR7/9 or overlay I hear only audio, video seems missing, but decoder are loaded
DOWNLOAD (http://www.mediafire.com/?v4zdnoxxhpcsy2h)

File info
General
Complete name : C:\Documents and Settings\Virtual_ManPL\Pulpit\Time.mov
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 5.57 MiB
Duration : 1mn 31s
Overall bit rate : 510 Kbps
Encoded date : UTC 2008-06-03 01:46:57
Tagged date : UTC 2008-06-03 01:46:57

Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L2.1
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1mn 30s
Bit rate mode : Variable
Bit rate : 388 Kbps
Maximum bit rate : 1 794 Kbps
Width : 480 pixels
Height : 320 pixels
Display aspect ratio : 3:2
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.084
Stream size : 4.21 MiB (76%)
Title : (C) 2007 Google Inc. v06.24.2007.
Encoded date : UTC 2008-06-03 01:46:57
Tagged date : UTC 2008-06-03 01:46:57

Audio
ID : 1
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 4
Format profile : LC
Format settings, SBR : No
Codec ID : 40
Duration : 1mn 31s
Bit rate mode : Variable
Bit rate : 122 Kbps
Maximum bit rate : 209 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Stream size : 1.33 MiB (24%)
Title : (C) 2007 Google Inc. v06.24.2007.
Encoded date : UTC 2008-06-03 01:46:57
Tagged date : UTC 2008-06-03 01:46:57

Underground78
20th August 2010, 14:24
Okay, a little status update on MPEG-TS support.

The remaining duration problems are bugs in libavformat. You can easily verify this yourself when running the files through ffplay or ffprobe (i can provide binaries later). TS isn't the best supported format in avformat, sorry.
I have some plans in mind that might improve this situation, but i don't want to go into specifics just yet. It probably will be some time before you hear of this again, so much stuff to do first!

I'm working on a fix for the MPEG-2 headers to properly connect to other filters, and i'll try to fix VC-1 to work with the MS DMO decoder. About the MPEG2 crash .. i'll try to reproduce this first.

Also, i haven't forgotten about all the non-TS bugs, and i'm looking at them too.

Ok, thanks a lot for your work.

As there will be probably a lot of bug reports that you won't have time to look at rapidly, don't you think it could be great to have some sort of bug tracker to keep trace of them better than a thread where it will gradually become very difficult to find them ?

MatMaul
20th August 2010, 14:27
The remaining duration problems are bugs in libavformat. You can easily verify this yourself when running the files through ffplay or ffprobe (i can provide binaries later). TS isn't the best supported format in avformat, sorry.
vlc demuxer seems to be a lot better in that regard.

Underground78
20th August 2010, 14:32
vlc demuxer seems to be a lot better in that regard.

Well, VLC demuxer is quite strange too. It does not seem to correctly detect the duration since it displays 00:00 but seeking works, I don't understand how it can be possible so maybe it is just a display problem ...

nevcairiel
20th August 2010, 14:33
As there will be probably a lot of bug reports that you won't have time to look at rapidly, don't you think it could be great to have some sort of bug tracker to keep trace of them better than a thread where it will gradually become very difficult to find them ?

I was storing important links in some text file so far. :D but i've been thinking about a proper project page before, and i'll just set it up on googlecode or so.

clsid
20th August 2010, 15:17
The readme mentions that it is needed to uninstall Haali. That is actually not needed at all. Simply use this registry key to enable use of LAVFSplitter:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Media Type\Extensions\.mkv]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"

May I suggest to enable runtime CPU detect and not force compilation for a specific CPU type. The filter currently does not work on older CPUs.

Can you give a list of which entries in the following key correspond to which file formats? That will allow the testers here to tweak the filter registration until a configuration dialog is implemented.
HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{9C53931C-7D5A-4A75-B26F-4E51654DB2C0}

An INI file could be useful to specify for which formats the filter should register itself during installation/regsvr32.

clsid
20th August 2010, 15:29
Figured out the list myself:
HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{9C53931C-7D5A-4A75-B26F-4E51654DB2C0}
0 - Matroska - 0,4,,1A45DFA3
1 - MPEG - 0,16,FFFFFFFFF100010001800001FFFFFFFF,000001BA2100010001800001000001BB
2 - MPEG - 0,5,FFFFFFFFC0,000001BA40
3 - MPEG - 0,8,fffffc00ffe00000,4156000055000000
4 - MPEG - 0,1,,47,188,1,,47,376,1,,47
5 - MPEG - 4,1,,47,196,1,,47,388,1,,47
6 - MPEG - 0,4,,54467263,1660,1,,47
7 - AVI - 0,4,,52494646,8,4,,41564920
8 - AVI - 0,4,,52494646,8,4,,41564958
9 - MP4 - (ftyp) - 4,4,,66747970
10 - MP4 (moov) - 4,4,,6d6f6f76
11 - MP4 (mdat) - 4,4,,6d646174
12 - MP4 (skip) - 4,4,,736b6970
13 - MP4 (wide mdat) - 4,12,ffffffff00000000ffffffff,77696465027fe3706d646174
14 - MP4 (raw) - 3,3,,000001
15 - FLV - 0,4,,464C5601

XhmikosR
20th August 2010, 15:49
Does anybody know why the splitter cannot be registered with Inno Setup? Using a simple script like this (http://xhmikosr.1f0.de/patches/lavfsplitter/LAVFSplitter.iss) fails with a RegSvr32 failed with exit code 0x3 message.

nevcairiel
20th August 2010, 16:03
The readme mentions that it is needed to uninstall Haali. That is actually not needed at all. Simply use this registry key to enable use of LAVFSplitter:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Media Type\Extensions\.mkv]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"

I didn't want to do this, because it would result in the same shit that Haali is doing, and overriding any merit decisions the filter manager trys to do. It forces it to be used, which i don't really like.
I tried to set the registration process to delete those keys, but apparently that didn't work (yet)


May I suggest to enable runtime CPU detect and not force compilation for a specific CPU type. The filter currently does not work on older CPUs.
I've had it on for 0.1-0.4, but disabled it for 0.5. There isn't any asm code in the demuxers, and the compiler flags are set for cpus that at least have SSE, which should be reasonable. Runtime CPU detect only works for the inline asm functions in ffmpeg, which don't really exist in avformat, afaik.

On what system did it fail for you?

If its really an issue for many people i could turn SSE off as well, but SSE introduces a new floating point calculator, and optimized memcpy/memmove, which it uses quite alot to shuffle the data around.

clsid
20th August 2010, 18:35
It does delete that key during registration.
One reason why I personally like that key is because it allows to specify the desired splitters for specific file extensions. That's particularly useful when there are multiple splitters installed. It gives more freedom than the merit system alone.

It failed on an old Athlon CPU that hasn't got SSE. Such old systems are not very common anymore, so I can understand if you don't want to support them. I was just asking in case there was little performance difference.

nevcairiel
20th August 2010, 18:40
One reason why I personally like that key is because it allows to specify the desired splitters for specific file extensions. That's particularly useful when there are multiple splitters installed. It gives more freedom than the merit system alone.

I can probably do this with an installer at some point, so the user has a choice during installation. Can't really ask the users wishes with regsvr32 call, can i. :)

Underground78
20th August 2010, 19:07
I setup a google code project. Even though it doesn't support Git right now, i like their bug tracking and overall design. Maybe they'll add Git eventually, until then, Code stays on my own server. ;)

Please report your issues on the project page, thanks!

http://code.google.com/p/lavfsplitter/issues/list

Oh, i already posted some issues that i had on my list, so please check for duplicates before posting! =)

Good, it will make reporting easier ! Does reporting issues about TS File is useful even if it is not your priority ?

nevcairiel
20th August 2010, 19:19
As long as its not duration related, sure.

LloydA
21st August 2010, 06:46
I setup a google code project. Even though it doesn't support Git right now, i like their bug tracking and overall design. Maybe they'll add Git eventually, until then, Code stays on my own server. ;)

Please report your issues on the project page, thanks!

http://code.google.com/p/lavfsplitter/issues/list

Oh, i already posted some issues that i had on my list, so please check for duplicates before posting! =)

Out of curiosity, why aren't you using GitHub? It has all the features of Google Code, and then some more. It's free for open-source projects, has notification hooks for all popular services, issue-tracking, wiki for documentation, web-based editing when you're on the road, and much more.

nevcairiel
21st August 2010, 06:47
Out of curiosity, why aren't you using GitHub? It has all the features of Google Code, and then some more. It's free for open-source projects, has notification hooks for all popular services, issue-tracking, wiki for documentation, web-based editing when you're on the road, and much more.

I don't like their bug tracker. Its too simple. And google has the advantage that most people already have an account there, so its easier for everyone to report and respond to bugs.

LloydA
21st August 2010, 07:15
I don't like their bug tracker. Its too simple.

Many don't know this, but with the "Labels" feature of GitHub you can assign "Type", "Status" and "Priority" metrics just like in Google Code, with the added flexibility that you can define infinitely more steps. What else do you miss in GitHub?

And google has the advantage that most people already have an account there, so its easier for everyone to report and respond to bugs.

Many people, myself included, have separate accounts for different activities with Google services, so in all likelihood you'd have to switch your Google account when using the Issue tracker. So it doesn't make much of a difference having Yet Another Account for GitHub. Plus, signing up there is really quick.

But fair enough. I hope you'll review your decision down the road, GitHub makes collaborative work much easier and less painful when you look at the whole feature set. :)

nevcairiel
21st August 2010, 07:21
Has GitHub proper bugtracker repository integration? Like, i include the bug number in the commit message, and the commit shows up in the associated bug?

LloydA
21st August 2010, 07:44
Yes, and the issue/bug will also auto-link to the commit, and the commit will auto-link to the issue. Example: http://github.com/dbloete/ioctocat/issues/issue/20 (not mine)

nevcairiel
21st August 2010, 10:07
Since someone else also advocated for GitHub, i moved everything there before too many people find the gcode project.

You can find the project now on GitHub: http://github.com/Nevcairiel/LAVFSplitter
Please also report issues there, thanks!

Once again i copied the bugs from the gcode project over, in addition to the bugs i filled myself from feedback in this thread.

nevcairiel
21st August 2010, 20:00
Good news, i think i found a solution to the stuttering-at-startup problem. I'm not 100% sure its the right thing to do, but it seems like a sane change, so i guess we'll see in the next version how it behaves.

I also found some serious memory leaks that could've easily caused the crash issues people have been reporting, so i'm looking forward to feedback for 0.6, which will be out tomorrow i guess, still some things to fix =)

Sebastiii
21st August 2010, 23:13
Thank you :) great news need to give a try :)
Seb.

XhmikosR
22nd August 2010, 10:51
Does anybody know why the splitter cannot be registered with Inno Setup? Using a simple script like this (http://xhmikosr.1f0.de/patches/lavfsplitter/LAVFSplitter.iss) fails with a RegSvr32 failed with exit code 0x3 message.

Anyone?

EDIT: Never mind, just tried it with the latest git and it successfully registers. :)

Underground78
22nd August 2010, 15:12
Compiling
=============================
Compiling is pretty straight forward using VC++2010 (included project files).
It does, however, require that you build your own ffmpeg.
You need to place the full ffmpeg package in a directory called "ffmpeg" in the
main source directory (the directory this file was in). There are scripts to
build a proper ffmpeg included.

I recommend using my fork of ffmpeg, as it includes additional patches for
media compatibility:
http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary

I am probably doing something wrong but I fail building ffmpeg lib ... In fact, "lib.exe" is not found and I do not know how to get it. I have found one "lib.exe" in "Microsoft Visual Studio 10.0\VC\bin" but it looks like it not the good one.

:thanks:

nevcairiel
22nd August 2010, 15:14
You need to add that the folder where the lib.exe is in into your path, obviously.

There is a batch file that should do that for you and start building

http://xhmikosr.1f0.de/patches/lavfsplitter/build.bat

Underground78
22nd August 2010, 15:26
Using vcvars32.bat has solved the problem. I previously had added "...\Microsoft Visual Studio 10.0\VC\bin" in the path but it was not sufficient. Thanks !

rack04
22nd August 2010, 18:22
Can someone please explain how to use this splitter with MPC-HC. Haali keeps being used even though I have set it to block in MPC-HC external filters and LAVFsplitter as preferred.

nevcairiel
22nd August 2010, 18:41
Haali is a bit stupid, you need to unregister (=uninstall) it, or it'll always be preferred. I have yet to find a easy way to disable its "always preferred"-ness..

rack04
22nd August 2010, 18:57
Haali is a bit stupid, you need to unregister (=uninstall) it, or it'll always be preferred. I have yet to find a easy way to disable its "always preferred"-ness..

Thanks for the information. When playing a file in MPC-HC how can I verify that the LAVFSplitter is being used?

Underground78
22nd August 2010, 19:39
Thanks for the information. When playing a file in MPC-HC how can I verify that the LAVFSplitter is being used?

Right click during playback, then go into Filters submenu and find the lastest entry, click on Properties, if it starts by "Filter : lavf dshow source filter" then it is really LAVFSplitter which is used.

nevcairiel
22nd August 2010, 20:42
LAVFSplitter 0.6
- Added support for E-AC3
- Fixed MPEG2 Media Types
- Added support for RealVideo in MKV
- Set proper aspect ratio in media type
- Fixed memory leaks in packet handling code
- Unicode support for stream names
- Threading changes for more fluid playback at startup
- Changed Flushing behaviour that solves a conflict with the MS DTV-DVD Decoder
- Better support for Vorbis audio
- Registers for the OGG Container Format

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.6.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.6-x64.zip)

Note: The filename of the filter has changed, so you'll need to re-register it. This will also register it for the OGG format, which seems to work pretty good so far.

Please test! The stuttering on startup should be much better now, and hopefully some of the crash issues fixed.

Additionally i patched MPC-HC to properly forward Media Type changes on subtitles to downstream filters, this will require at least MPC-HC rev. 2298 to work properly if you use ffdshow for subtitles.
ffdshow was also updated to properly handle UTF-8 subtitles send by LAVFSplitter, this is in ffdshow rev. 3537. Please make sure to have both these components updated to at least these revisions before reporting subtitle related issues, thanks!

Underground78
22nd August 2010, 20:43
Thanks ! :)

I have been playing with the code today and I wonder why you choose to use avg_frame_rate rather than r_frame_rate ?

I have few samples (TS File mostly) whose frame rate was incorrectly detected by LAVFSplitter but not by VLC and mplayer. I saw that r_frame_rate was correct so I had a look to VLC and mplayer source code and they do use r_frame_rate rather than avg_frame_rate. I modified a bit the code (http://pastebin.org/727131) to do more testing and so far all the samples I have tested have worked.

Also I have been tracking down a bug with incorrect aspect ratio with some TS file but it is highly strange, ffprobe does detect the AR correctly but using a debug build of LAVFSplitter I see that the aspect ratio is not detected. I use ffprobe compiled at the same time than the libs used by the splitter and looking at ffprobe code I can't see why it does not work.

nevcairiel
22nd August 2010, 20:50
r_frame_rate was set to 24.000 fps on some 23.976 movies, which seemed a bit weird, and avg_frame_rate contained the proper rates.
I can change it back if avg_frame_rate is broken in many cases.

Underground78
22nd August 2010, 21:21
r_frame_rate was always set to 24.000 fps on 23.976 movies, which seemed a bit weird, and avg_frame_rate contained the proper rates.
I can change it back if avg_frame_rate is broken in many cases.

I tried some 23.976 movies and it works so I don't know what is best ...

About the aspect ratio problem, looking at VLC and mplayer, it seems something like this could make sense :

diff --git a/src/Demuxers/LAVFGuidHelper.cpp b/src/Demuxers/LAVFGuidHelper.cpp
index 06dae3d..ddfa505 100644
--- a/src/Demuxers/LAVFGuidHelper.cpp
+++ b/src/Demuxers/LAVFGuidHelper.cpp
@@ -311,11 +311,17 @@ VIDEOINFOHEADER2 *CLAVFGuidHelper::CreateVIH2(const AVStream* avstream, ULONG *s

// Calculate aspect ratio
AVRational r = avstream->sample_aspect_ratio;
+ AVRational rc = avstream->codec->sample_aspect_ratio;
if (r.den > 0 && r.num > 0 && (r.den > 1 || r.num > 1)) {
int num = 0, den = 0;
av_reduce(&num, &den, (int64_t)r.num * vih->bmiHeader.biWidth, (int64_t)r.den * vih->bmiHeader.biHeight, 255);
vih2->dwPictAspectRatioX = num;
vih2->dwPictAspectRatioY = den;
+ } else if (rc.den > 0 && rc.num > 0 && (rc.den > 1 || rc.num > 1)) {
+ int num = 0, den = 0;
+ av_reduce(&num, &den, (int64_t)rc.num * vih->bmiHeader.biWidth, (int64_t)rc.den * vih->bmiHeader.biHeight, 255);
+ vih2->dwPictAspectRatioX = num;
+ vih2->dwPictAspectRatioY = den;
} else {
vih2->dwPictAspectRatioX = vih->bmiHeader.biWidth;
vih2->dwPictAspectRatioY = vih->bmiHeader.biHeight;

VLC always uses codec->sample_aspect_ratio and mplayer uses it as a fall-back if sample_aspect_ratio fails. It fixes some of the aspect ratio problems I have.

nevcairiel
22nd August 2010, 21:25
As a fallback looks good, i can surely add this.

Edit: Commited to Git

rack04
22nd August 2010, 21:49
MPC-HC_r2300
ffdshow_rev3540
LAVFSplitter 0.6
madVR 0.27

If I right click and select filters it shows:

Default DirectSound Device
madVR Renderer
ffdshow Audio Decoder
Audio - AC3, 5.1, 48000 Hz (libavcodec)
ffdshow Video Decoder
English (ac3, 48000 Hz, 5.1, s16, 640 kb/s)

Any idea why the Video Decoder is being listed as such?

nevcairiel
22nd August 2010, 21:50
Thats ffdshow being funny. Don't ask me why they show it there, but well, they just do.
I never understood why, and last time i asked i just got yelled at, go try your luck :p

As a quick note, don't use the ffdshow menu to change streams, it somehow makes everything break with the splitter.

STaRGaZeR
22nd August 2010, 21:50
Some limited testing with 0.6:

- MKVs with TrueHD tracks freeze, but the timer goes on.
- MKVs with subs start like before in the No subs option. However, if you turn them on, they'll be displayed ~5-15 secs, or even more, after they should. Seeking fixes the delay. You can see it with the Avatar sample I posted earlier, but it's a bit short.
- E-AC3 works fine.
- Stuttering at startup seems fixed :)

nevcairiel
22nd August 2010, 21:57
- MKVs with subs start like before in the No subs option. However, if you turn them on, they'll be displayed ~5-15 secs, or even more, after they should. Seeking fixes the delay. You can see it with the Avatar sample I posted earlier, but it's a bit short.


I noticed the delay too, but i thought i only saw it with the MPC-HC internal renderer. Anyhow, not sure what is causing this, will try to debug it later.

STaRGaZeR
23rd August 2010, 00:02
These two issues didn't happen with 0.5, so it has to be something in between the two versions.

nevcairiel
23rd August 2010, 07:13
These two issues didn't happen with 0.5, so it has to be something in between the two versions.

Thanks, i have an idea what to look for then. :)

hoborg
23rd August 2010, 12:58
Looks like 0.6 fixed a lot of issues, good work!

This time i tested some simple audio formats - *.MP3, *.FLAC, *.DTS, *.OGG, and various audio in MKV kontainer (*.MKA). All formats create correct graph, but if i hit play, Graphstudio crash (all formats).

nevcairiel
23rd August 2010, 13:00
Files without video?

I'm not sure i fixed playing files without a video stream yet, i'll put it on the list, thanks for testing =)

hoborg
23rd August 2010, 13:01
Files without video?

Yes, audio only.

nevcairiel
23rd August 2010, 13:06
I suppose i can add their media types as well when i fixed that, eh.

hubblec4
23rd August 2010, 16:17
i miss a trayicon in the toolbar to change the audio,- or subtitlestreams like in the haali splitter.

is it possible to get this feature in future?

liquidskin76
23rd August 2010, 16:25
- MKVs with TrueHD tracks freeze, but the timer goes on.

I see something similar, in that TrueHD movies stutter like mad.

The good news is that the stuttering at the start of other vids has gone!

Thanks nev for your hard work.

nevcairiel
23rd August 2010, 16:41
Yeah, i see that TrueHD issue. Not sure whats up with that. The other splitters i looked at just treat it as normal AC3 and it works just fine. I'll debug more. :)

nevcairiel
23rd August 2010, 17:17
I fixed a bug that caused my TrueHD sample to not play at all (and probably some other streams as well), but turns out the bitstream must be broken somehow, when decoded its full of artifacts.
Mine was from a retail bluray, so it could just be the TS demuxer being broken again. I should remux a short sample into mkv or find one to test with.

STaRGaZeR
23rd August 2010, 17:22
My files are BDs remuxed to MKV, and they were fine with 0.5, maybe the changes you made to the buffers?

nevcairiel
23rd August 2010, 17:43
Some other change i did could've already fixed that. But i am still looking for a quick sample to verify that is not ts/m2ts, just to be sure.
Turns out, remuxing a m2ts file is not done with 3 clicks, i have to download several tools =( I never really cared for remuxing things before.. meh

STaRGaZeR
23rd August 2010, 17:53
eac3to + mkvmerge is where the beacon is, eac3to from the command line (with scripts to make things easy if you don't want to type the stuff all the time) and then mkvmerge it's not 3 clicks, maybe 10 or so :p

hubblec4
23rd August 2010, 18:27
eac3to + mkvmerge is where the beacon is, eac3to from the command line (with scripts to make things easy if you don't want to type the stuff all the time) and then mkvmerge it's not 3 clicks, maybe 10 or so :p

thats right.
bluray to mkv is an easy job and you have the best quallity.

for the most of movies i use this way.

nevcairiel
23rd August 2010, 18:51
Good news: I found the change thats causing TrueHD to break.
Bad news: Its the change that was meant to fix the stutter issue =(

I'll dig into that, i guess.

Edit:
After reverting the old "fix" i still don't see the stuttering issue. Possible another change i did also fixed it. I even increased the number of buffers to some incredibly high amount, and they slowly filled up.
So i'll keep the fix disabled and release a new version for testing, maybe i was just too blind to see it!

PS:
git bisect ftw

nevcairiel
23rd August 2010, 19:20
LAVFSplitter 0.7
- Further improvements to aspect ratio detection
- Restore old FPS detection
- Adjusted flushing to fix subtitle delays
- Reverted a timing change that broke TrueHD

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.7.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.7-x64.zip)

Please pay attention to the stuttering problem, it may be back in this version. The fix i previously applied completly broke TrueHD playback, but i couldn't reproduce the issue anymore, so maybe one of the other optimizations fixed it too.

I didn't work on the other things i wanted to get done because i want feedback on the stuttering thing as soon as possible.
So next version will have new features again. :)

STaRGaZeR
23rd August 2010, 20:22
I don't get any stuttering with 0.7, TrueHD and subtitle delay is fixed. Looks good :)

BTW, did you do anything to the SSA fonts? I get correct fonts in some files, but incorrect in others!

nevcairiel
23rd August 2010, 20:25
I don't think i could even do anything to change the fonts of SSA subs.
I think i changed the mediatype from SSA to ASS some time ago, if that changes anything.

I should patch up ffmpeg to differentiate between SSA and ASS, so its always the correct thing.

What exactly is the problem? Files with embedded fonts? Or system fonts that just don't get choosen correctly?

STaRGaZeR
23rd August 2010, 20:39
Files with embedded fonts, like that Haruhi sample.

I just noticed in one of your commits that ffdshow is not happy if you send TrueHD as TrueHD, can you PM me a build that sends it as TrueHD? Maybe I can debug it.

nevcairiel
23rd August 2010, 21:00
Its not only ffdshow, MPC-HC internal as well, but sure, i'll send it your way.

I just noticed that i can teach it to send 2 media types now, so it can always fall back to the AC3 media type if needed. =)

I send you a PM with the adjusted .ax, just take the av* dlls from 0.7

Matching_Mole
24th August 2010, 08:00
I'm trying your splitter and it is very good, thanks!

But I have the same issue which MPC internal one for VC-1 video in m2ts from my Blu-ray. If you use an external VC-1 decoder (so no the MPC internal one, because so no problem), the frame rate is badly jerky. Some renderer (EVR-CP, Madvr recently,...) use some "dirty" trick to find the correct original frame rate but not all (as EVR-Sync which is currently use). I try also your splitter with KMP and same issue, jerky frame rate again. I don't know if you already know this issue.

nevcairiel
24th August 2010, 08:16
What external decoder did you use?
I know it works fine with ffdshow, at least, but its pretty similar to the internal decoder.

The internal splitter can't even get it right with the internal decoder, so at least thats a improvement.

hoborg
24th August 2010, 08:19
@nevcairiel:

Hi.
You can close issue 5 (http://github.com/Nevcairiel/LAVFSplitter/issues/#issue/5), it was fixed already.
I updated my "tests" post (http://forum.doom9.org/showthread.php?p=1426670#post1426670) - this time i tested some *.MPG samples.

BTW, by some reason, there is no free m2ts splitter right now able to connect to "CyberLink Video Decoder (PDVD10)" to decode VC-1i using DXVA. By some reason MPC splitter fail to connect. Only working solution is to use Cyberlink CLDemuxer2 demultiplexet for m2ts files, but then there is no support for subtitles and no way to switch between multiple audio streams.
By other words - will be posiible to modify LAVF splitter to be usable with CyberLink Video Decoder (PDVD10) decoder for VC-1i DXVA playback?

nevcairiel
24th August 2010, 08:21
The cyberlink decoder might require a custom media type. I would have to get my hands on a copy of the splitter and decoder to see whats being send around there. I guess there are trials of PDVD10?

hoborg
24th August 2010, 08:24
The cyberlink decoder might require a custom media type. I would have to get my hands on a copy of the splitter and decoder to see whats being send around there. I guess there are trials of PDVD10?

I wil PM link to Cyberling demultiplexer and decoder.

nevcairiel
24th August 2010, 08:28
Oh also a VC-1i sample would be good, i don't think any of my blurays was actually interlaced.
BTW, i thought the gabest splitter would work, but maybe not with PDVD10 anymore.

hoborg
24th August 2010, 08:40
Oh also a VC-1i sample would be good, i don't think any of my blurays was actually interlaced.
BTW, i thought the gabest splitter would work, but maybe not with PDVD10 anymore.

Nope, gabest + PDVD10 doesnot work for VC-1i at all :/

I am just uploading m2ts VC-1i sample for you.

BTW, there is another problem with VC-1 files + FFDshow decoder - there is no way (at last i didnt found it) how to block FFDshow decoder to load for VC-1i and keep it for VC-1p - there is no "is/is not interlaced" condition in proflies :/

EDIT:
Here is VC-1i sample (http://hobring.ic.cz/samples/m2ts.vc-1i+dts.zip).

Matching_Mole
24th August 2010, 09:25
What external decoder did you use?
I know it works fine with ffdshow, at least, but its pretty similar to the internal decoder.

The internal splitter can't even get it right with the internal decoder, so at least thats a improvement.

Myself, I use Arcsoft one for interlaced file. I try also the microsoft decoder via FFdshow but I had also the issue so I don't understand why it's good for you. Which renderer are you using because the issue can be hide by the "Frame Time correction" option (in MPC-HC at least)?

For Cyberlink VC-1 and Arcsoft decoders, they are not directly usable in MPC, you need to use loaders.

nevcairiel
24th August 2010, 09:34
BTW, there is another problem with VC-1 files + FFDshow decoder - there is no way (at last i didnt found it) how to block FFDshow decoder to load for VC-1i and keep it for VC-1p - there is no "is/is not interlaced" condition in proflies :/

Yeah, i know. You would have to block ffdshow for all VC-1. Don't think there is a proper solution for this =/
Anyway, thanks for the sample, i'll check it out after work.

Myself, I use Arcsoft one for interlaced file. I try also the microsoft decoder via FFdshow but I had also the issue so I don't understand why it's good for you. Which renderer are you using because the issue can be hide by the "Frame Time correction" option (in MPC-HC at least)?

I was using EVR-CP, but i turned frame time correction off. I see the error with the internal splitter, but not with mine.
I'll double check again.

For Cyberlink VC-1 and Arcsoft decoders, they are not directly usable in MPC, you need to use loaders.
That might as well be another issue, and the decoder strictly limiting which splitter it connects to. In that case, i wouldn't be able to fix it, and you would have to rely on a loader.

Matching_Mole
24th August 2010, 09:59
I was using EVR-CP, but i turned frame time correction off. I see the error with the internal splitter, but not with mine.
I'll double check again.

I will check also from my side so. All my check are done with EVR-Sync renderer because it is the smoother on my installation.


That might as well be another issue, and the decoder strictly limiting which splitter it connects to. In that case, i wouldn't be able to fix it, and you would have to rely on a loader.

You're completely right, these decoders are "normally" not usable with other splitters than their ones and the goal of the loader is to "cheat" them. But currently it exists only loaders for MPC splitter and Haali Splitter and so maybe a specific loader should be developped / updated for LAVFSplitter but I don't know who can do this. These loaders are pretty old now :)

Sebastiii
24th August 2010, 10:37
Hi,

I would like to know if Mediaportal user have issue on the Splitter, we (Underground78 and me) try to find why it happen but it's a very weird bug.
On this splitter, the video doesn't start it's like the video was paused. If i hit pause/play the video start (somethimes MP freeze too).
It doesn't happen with other splitter even with XBMCSplitter.

I try on my side with no good result :(

Another thest that i i made , is to start video (bug -> we stay on the same screen -> go to graphstudio -> connect to remote graph and hit play from graphstudio -> the video start in MP).

Thanks,
Seb.

Underground78
24th August 2010, 12:47
Hello,

I managed to add hearing impaired DVB subtitles detection to LAVFSplitter.

The patch for ffmpeg can be found here : http://pastebin.ca/1924136 and the one for LAVFSplitter itself here : http://pastebin.ca/1924138.

I hope it will be useful ! :)

nevcairiel
24th August 2010, 12:50
Cool stuff, i'll look it over later!

Underground78
24th August 2010, 12:57
Cool stuff, i'll look it over later!

Great ! :)

What was the problem with teletext ? Was it detecting teletext subtitles against some others teletext streams or something more complicated ?

nevcairiel
24th August 2010, 12:59
Yeah, just the problem to detect which teletext streams are actually teletext and which are teletext subtitles.
Is there a DirectShow teletext decoder, anyway? I don't even know what mediatype to use for those.

Speaking of ffmpeg, i shall try to update my ffmpeg fork to trunk and cleanly apply all patches from XBMC and my own, right now i'm only using the XBMC version without history or a clean merge path. /me hides in shame

Underground78
24th August 2010, 13:58
Yeah, just the problem to detect which teletext streams are actually teletext and which are teletext subtitles.
Is there a DirectShow teletext decoder, anyway? I don't even know what mediatype to use for those.

I don't know but if it happens that such a decoder exists I think ffmpeg will need some patching. I now know how to detected the type of teletext streams but it seems ffmpeg is pretty bad at detecting the streams themselves ...

If someone need teletext subtitles and know how to decode them, I can have an look.

nevcairiel
24th August 2010, 14:06
I guess we'll just leave teletext missing for now, they are mighty ugly anyway :D

Although, in the samples i got from Ger, it seemed to detect the teletext streams. I had to block them to not show broken streams


On another note, from the lack of complaints i can deduce that the stuttering issue is indeed not back with 0.7?

Underground78
24th August 2010, 14:17
I guess we'll just leave teletext missing for now, they are mighty ugly anyway :D

Although, in the samples i got from Ger, it seemed to detect the teletext streams. I had to block them to not show broken streams

Well, in my samples I see two teletext streams in VLC (one is subtitles the other is other teletext) but ffprobe only detects one. I hexedited my sample file and it seems VLC is right, I see two teletext streams ...

Keiyakusha
24th August 2010, 14:19
is there support for linked mkv files?

nevcairiel
24th August 2010, 14:22
Well, in my samples I see two teletext streams in VLC (one is subtitles the other is other teletext) but ffprobe only detects one. I hexedited my sample file and it seems VLC is right, I see two teletext streams ...

Personally, i don't worry too much about MPEG-TS files with the current backend. VLC uses the mplayer demuxer (libmpdemux)? or something entirely different?

is there support for linked mkv files?

No, sorry. libavformat does not (yet) support these.
I would however appreciate a sample, or some info where to find one. =)

I might have some ideas for segment linking and ordered chapters for the future, its somewhat related to the plans for MPEG-TS, but it'll be quite a while.

Underground78
24th August 2010, 14:25
Personally, i don't worry too much about MPEG-TS files. VLC uses the mplayer demuxer (libmpdemux)? or something entirely different?

I would say entirely different, not sure how good is libmpdemux with MPEG-TS files but VLC is not so bad ...

nevcairiel
24th August 2010, 14:52
Well i did abstract the demuxing backend, so in theory one could use another demuxer, if its at all feasible.
libmpdemux would be a good candidate because there is a fork of it with full support for mkv segment linking and ordered chapters. Knowing how its TS compat is would be good. Only one way to find out. ;)

Underground78
24th August 2010, 15:05
Well i did abstract the demuxing backend, so in theory one could use another demuxer, if its at all feasible.
libmpdemux would be a good candidate because there is a fork of it with full support for mkv segment linking and ordered chapters. Knowing how its TS compat is would be good. Only one way to find out. ;)

I have just tested some of my TS samples with mplayer and it looks like it does fix some and broke others ... :rolleyes:

nevcairiel
24th August 2010, 15:09
VLCs own demuxers are directly VLC modules, so it would require quite some re-working to get them to integrate properly. Maybe it can be done. I need like 2 month of vacation from work to do all this stuff =P

As a bonus, i'm moving into a new place next week ;)

Underground78
24th August 2010, 15:13
VLCs own demuxers are directly VLC modules, so it would require quite some re-working to get them to integrate properly. Maybe it can be done. I need like 2 month of vacation from work to do all this stuff =P

As a bonus, i'm moving into a new place next week ;)

Do you think it would be easier to use libmpdemux or even VLC demuxers than fixing libavformat ?

nevcairiel
24th August 2010, 15:19
libmpdemux should not be too hard, it seems to have a proper API and all. I've been told the avformat framework is a bit too limited for stuff like segment linking/ordered chapters, thats why the previous patch was discarded and someone else did it with libmpdemux.

For MPEG-TS, i don't know. Using VLCs stuff would be quite alot more work. We can certainly try to fix the problems in the avformat mpegts demuxer (and try to get them upstream eventually), but debugging such media problems is always really tedious. For starters it would probably help alot to compile it with MSVC to get Just-in-Time debugging capabilities.
As far as my experience goes, the issues in the demuxers are usually not caused by perfect streams, rather by streams that somehow violate the specs, or use very exotic combinations of things.

Also, i'm currently not really knowledgeable about the mpegts bitstream format, i've successfully ignored it until now. A way too complicated format! =) Sadly the official specs, at least the up-to-date version that includes the bluray variants et al, are rather expensive.
I'm learning alot as i'm writing LAVFSplitter, though.

If anyone else wants to join in on fixing media compat problems in libavformat, you're always welcome, of course!

Matching_Mole
24th August 2010, 20:18
I will check also from my side so. All my check are done with EVR-Sync renderer because it is the smoother on my installation.

I made some test with a VC-1 video in m2ts container using one of the last version of MPC-HC. I used first the arcsoft decoder and the Evr custom renderer with the frame time correction disabled. The result was a jerky frame rate as you can see here:
http://img827.imageshack.us/img827/1296/screenmi.th.png (http://img827.imageshack.us/i/screenmi.png/)

I made again the test but using libavcodec the situation seems better as you said but as it is not multi-threaded and my test system old (Athlon 64 3000+) sometime the frame rate was not stable. I need to check on my PCHC to be sure that this is really due to my over-loaded core or not.

I don't understand why the frame rate is so jerky with the Arcsoft decoder because it works perfectly with H.264 codec. It's sad because this one is multi-threaded and accept interlaced stream.

nevcairiel
24th August 2010, 21:03
Its so jerky because VC-1 sucks. Somehow MS designed a "brilliant" format that doesn't have timestamps. The splitter trys to generate the timestamps, but its not working properly. So what i did was use the DTS timestamps (Decoding Time). While it seemed to work somewhat fine with ffmpeg based decoders, it produces problems with others. With the MS decoder, audio/video is out of sync. And with your decoder, its still jerky, apparently.

Hate VC-1. If someone knows how to reconstruct proper timestamps for the samples, please, do tell!

Matching_Mole
24th August 2010, 21:41
Ok I can understand better the issue so. Its seems that to solve this issue Halli splitter makes a kind of guessing and MPC-HC one lets the renderer makes the guessing if it has the functionality. Do you know if VLC team uses the same method than you?

Nevertheless, thank you very much for your answers and your splitter! I hope you will find a solution because it seems that to use Arcosft VC-1 decoder with your splitter, no loader is needed. So it will be a good solution to have a multi-threaded decoder which accept interlaced stream.

nevcairiel
24th August 2010, 21:59
Haali + loader works fine with the Arcsoft decoder?
I can hook up a debug filter to haali and see how his timestamps look, maybe that will tell me how to fix them, or something.
I always thought haali didnt do VC-1 in mpegts properly either.

Matching_Mole
24th August 2010, 22:06
I made quickly the test and you're right, Haali do not works correctly also for VC-1. Sorry for the bad info.

naomatrix
24th August 2010, 23:20
I don't understand why lavfsplitter shows FOURCC - "FMP4 ffmpeg decoder" in normal Avi files, when mediainfo shows FOURCC - "XVID". Because of this error ?? :confused: Potplayer can't connect the decoder XVID. DScaler Mpeg2 Video Decoder now connects to mpeg2 4:2:2 video, thanks. But is not connected decoder "WMVideo decoder DMO" for FOURCC - "WVC-1". It would be good to incorporate into splitter loader(tweak) for Cyberlink decoder in containers .mkv and .M2ts(.ts) with VC-1 video, is it possible also for Arсsoft Video decoder( tweak also exists).Here - http://depositfiles.com/ru/files/duzd3phid are all known to me tweakers for Cyberlink decoder.
In Haali is one option "Autoload VSFilter" - yes/no, is useful to work with subtitles in madvr.
Sorry for the many wishes, but I hope that the lavfsplitter will be the main splitter on my computer and I will not use Haali :).
Thanks

nevcairiel
25th August 2010, 08:09
I'll not add hacks like that, if you want to use decoders that strictly limit what they connect to, you need to use the seperate loaders, or use their demuxers as well.

nevcairiel
25th August 2010, 09:20
Debugging with CyberLink demuxer didn't shed any more light on the timestamp issue. It delivers completly screwed up data that their decoder probably fixes. meh.
At least you can watch VC-1i with the wmv9 option in ffdshow. I'll try to get this to work eventually with other decoders, but my time is going to be severly limited the next month.

0.7 seems stable enough to keep around for the time being, mostly while i move into the new apartment ;)

If there is any non-commercial demuxer that can demux VC-1 in TS without the jerky playback problem, please tell me about it, so i can compare its timestamp generation to mine, and maybe figure out the algorithm to fix it. The commercial demuxers usually only work with their own decoders, and that doesn't really help much.

PS:
The 25fps sample i got from hoborg does not seem to suffer from the problem at all. It appears only NTSC-timestamped samples suffer, possibly due to a accuracy problem with their wonky framerate of 24000/1001. Sadly i didn't bring a sample with me on the laptop and can't test it right now to compare values.

Matching_Mole
26th August 2010, 16:37
Its so jerky because VC-1 sucks. Somehow MS designed a "brilliant" format that doesn't have timestamps. The splitter trys to generate the timestamps, but its not working properly. So what i did was use the DTS timestamps (Decoding Time). While it seemed to work somewhat fine with ffmpeg based decoders, it produces problems with others. With the MS decoder, audio/video is out of sync. And with your decoder, its still jerky, apparently.

It's weird because this link seems to say that you have implemented the right method :
http://books.google.fr/books?id=MKhbLPHRb78C&pg=PA69&lpg=PA69&dq=vc1+PTS&source=bl&ots=hkUTqf4BLA&sig=Bs67nEZJrkPfxf_3RJIdQhk8UYs&hl=fr&ei=uL10TKTfF4qPswbBpfzlBQ&sa=X&oi=book_result&ct=result&resnum=5&ved=0CC4Q6AEwBDgK#v=onepage&q&f=false

But I don't have a great knowledge on his subject so may be I'm wrong.

Anyway, if I find something I will let you know. Thank you very much for your help!

nevcairiel
26th August 2010, 17:07
I cannot access that page, but yes, its what my research revealed as well. It works with ffdshow, so it cant be all wrong. I'll still try to fix it up with at least the MS decoder, no promises on the locked proprietary decoders.

nevcairiel
26th August 2010, 18:57
Well i figured out why its out of sync with the MS decoder. Turns out it doesn't respect timing flags like it should be doing, and just plays a frame once it receives it.
The file i was testing with had a few milliseconds of audio before the first video frame was sent. Not sure if thats common on media files or just a fluke with my sample. Anyway, due to that behaviour, it instantly started playing the movie, while ffdshow waits for the proper timing of the sample, and thus, with the DMO decoder, its out of sync.

What i can try to do is basically look for the first video sample in the stream, take its timing information, and drop all audio frames before this time. If it works properly, i don't know. But i'll test it.

Matching_Mole
26th August 2010, 19:44
For the link I have also sometime the same issue than you. but I reclick again on it and it works :)

This is coming from the book "The VC-1 and H.264 Video Compression Standards for Broadband Video" which seems interesting. If you can't access to it I can maybe provide to you the chapter information "VC-1 Encapsulation in MPEG-2 Systems".

Virtual_ManPL
27th August 2010, 12:08
https://forum.doom9.org/showthread.php?p=1427707#post1427707
Thanks for fast fixing bugs #1 & #2, and adding OGG splitter :)

But bug #3 still exist, can someone confirm it ?


Also I find that seeking seems broken, because it hangs whole player... or it's just me... ? :D

Underground78
27th August 2010, 12:22
Also I find that seeking seems broken, because it hangs whole player... or it's just me... ? :D

No it's not just you but for me it does not happen each time I seek, it seems to happen quite randomly.

Ger
27th August 2010, 18:07
I've been busy the last week, but I'm trying to get back to some testing now. Haven't signed up at github yet, but I'll try to get there eventually. For now I'm posting my findings regarding a couple of crash/freeze issues here.

I have been trying to figure out when this freeze-on-seek issue started, and I'm kind of relieved to see in the last two posts that I'm not the only one with the problem. I was starting to wonder if there was something unique about my system.

Anyway, my findings about freeze-on-seek:
- Present only in v0.6 and v0.7. v0.5 and earlier are not affected.
- Happens with all containers (I assume, since I know for sure it happens with avi, mkv, ts).
- Seems a bit random, but is certainly easy to reproduce on my system if you click on different places on the seek bar in quick succession. A normal avi/xvid is fine for testing this.
- Happens often enough that I can't really keep 0.6-0.7 registered for everyday use (the freezing becomes too annoying). I'm back to 0.5 for that reason.

So I'm pretty sure we can conclude that this is caused by one of the changes between 0.5 and 0.6 that affects all containers.



I've also been doing some more testing on my crash-on-seek issue:
- I'm now pretty sure it's not related to the freeze-on-seek described above, since this also happens with v0.5.
- I'm fairly sure now that this is a crash in libmpeg2 or at least ffdshow's version of libmpeg2 (libmpeg2_ff.dll). Crash dialogs seemingly randomly reports ntdll.dll or mpc-hc.exe as the problem module, but at least once it identified libmpeg2_ff.dll.
- I can't say for sure if the MPC-HC internal libmpeg2 based decoder is also affected (I suspect it's not since it tended to freeze rather than crash with limited testing), since the freeze prevents reliable testing in 0.6-0.7 and 0.5 only connects to ffdshow for MPEG2 and 0.4 and earlier have duration/seek problems.
- When I set ffdshow to use libavcodec for MPEG-2 I can seek freely in my Henry IV sample (http://forum.doom9.org/showthread.php?p=1426598#post1426598) with LAVFSplitter 0.5 with no issues at all. Setting it back to libmpeg2 and the crash-on-seek is back.
- AFAIK the ffdshow libmpeg2 crash only happens with LAVFSplitter. I haven't been able to reproduce it with Gabest/Haali splitters.

I have an MPEG2 channel/sample that the libavcodec implementation in ffdshow can't handle. Apparently works in ffplay but Haruhiko couldn't figure out how to fix it in ffdshow when I reported it way back, so I hope the crash-on-seek with ffdshow/libmpeg2 + LAVFSplitter can be fixed.

BTW, I use recent svn builds for both MPC-HC and ffdshow. Always 32-bit versions of all splitters/decoders/players on Win7 x64. EVR Sync. ATI 5770.

PS. Thanks Underground78 for the patches and of course to nev as always.

nevcairiel
27th August 2010, 18:47
I don't get the freeze on seek at all =(
Anyone that can reproduce it and is comfortable with Git and building lavfsplitter yourself want to bisect it? :D

Underground78
27th August 2010, 19:04
I don't get the freeze on seek at all =(
Anyone that can reproduce it and is comfortable with Git and building lavfsplitter yourself want to bisect it? :D

I could try.

nevcairiel
27th August 2010, 19:11
I ran into the error once when trying now, and saw a deadlock on the demuxer worker thread. It happend when too many flush events occur, or two threads try to flush at the same time. Anyhow, i applied a fix.

Since i can't really test it myself reliably, please test this version and see if its gone:
Download (http://files.1f0.de/lavf/LAVFSplitter-0.7-seeking-fix.zip)
(Its just the .ax, take the dlls from 0.7 - also only 32-bit)

Underground78
27th August 2010, 19:19
I ran into the error once when trying now, and saw a deadlock on the demuxer worker thread. It happend when too many flush events occur, or two threads try to flush at the same time. Anyhow, i applied a fix.

Since i can't really test it myself reliably, please test this version and see if its gone:
Download (http://files.1f0.de/lavf/LAVFSplitter-0.7-seeking-fix.zip)
(Its just the .ax, take the dlls from 0.7 - also only 32-bit)

Still crashing here. Can you update your repository so I can test the fixed version in the debugger ?

nevcairiel
27th August 2010, 19:21
Its crashing? No-one said anything about crashes. I was meaning to fix the freeze :P
Oh, on that note, i had some crashes when seeking wildly, but thats reclock. Disable it, and its fine. At least was for me. (Those crashes usually blame evr.dll)

Underground78
27th August 2010, 19:23
Its crashing? No-one said anything about crashes. I was meaning to fix the freeze :P

There was two issues when seeking, ramdom freezes and sometime crashes. In fact, it's still freezing here and I don't use Reclock.

nevcairiel
27th August 2010, 19:25
Yeah i didn't even try to fix, or even reproduce that yet...... :)
But as i understand, its only with libmpeg2 in ffdshow?

Underground78
27th August 2010, 19:26
Yeah i didn't even try to fix, or even reproduce that yet...... :)

Sorry, I edited ... In fact, freezes are not gone. I see you update your repository, I will try again with debugger.

nevcairiel
27th August 2010, 19:28
I updated the repository, if you can reproduce the freeze then look at the stack traces of the "CLAFVSplitter Demux" thread and the "Main Thread", and see which was the last piece of code running inside LAVFSplitter (don't care about what comes after it)

For me the main thread was sitting on CallWorker in SetPositions, and the demuxer was sitting on m_eEndFlush.Wait() in the ThreadProc. This shouldn't happen anymore, i hope.

Underground78
27th August 2010, 19:41
I updated the repository, if you can reproduce the freeze then look at the stack traces of the "CLAFVSplitter Demux" thread and the "Main Thread", and see which was the last piece of code running inside LAVFSplitter (don't care about what comes after it)

For me the main thread was sitting on CallWorker in SetPositions, and the demuxer was sitting on m_eEndFlush.Wait() in the ThreadProc. This shouldn't happen anymore, i hope.

LAVFDShowSplitter.ax!CAMEvent::Wait(unsigned long dwTimeout) Ligne 128 + 0x12 octets C++
LAVFDShowSplitter.ax!CAMThread::CallWorker(unsigned long dwParam) Ligne 178 C++
LAVFDShowSplitter.ax!CLAVFSplitter::SetPositions(__int64 * pCurrent, unsigned long dwCurrentFlags, __int64 * pStop, unsigned long dwStopFlags) Ligne 496 C++

nevcairiel
27th August 2010, 19:49
Looks like the same funnyness, meh. But this is just the main thread, where is the demux thread? :)

Underground78
27th August 2010, 19:50
Looks like the same funnyness, meh. But this is just the main thread, where is the demux thread? :)

I can't find it ... :eek:

nevcairiel
27th August 2010, 19:51
Check the output window if it exited by any chance. For me its usually near the bottom of the thread list.

Underground78
27th August 2010, 20:17
The freeze issue has been fixed by nevcairiel. :)

nevcairiel
27th August 2010, 20:35
I was trying to find the crash issue with libmpeg2, but all i see is stack traces deep into ffdshow and libmpeg2. Anyone with a personal interest in getting it fixed should probably give a detailed report to ffdshow, maybe its on their end, or at least can point the finger on something specific thats going wrong.

In the meantime, the MPC-HC internal mpeg2 decoder (also based on libmpeg2) works fine, as well as the libavcodec based mpeg2 decoder in ffdshow .. so many working choices! :D

STaRGaZeR
28th August 2010, 00:35
Its crashing? No-one said anything about crashes. I was meaning to fix the freeze :P
Oh, on that note, i had some crashes when seeking wildly, but thats reclock. Disable it, and its fine. At least was for me. (Those crashes usually blame evr.dll)

So you're also getting evr.dll crashes in MPC-HC? Using EVR-Sync by any chance? I have them and it's driving me nuts :mad:

They have nothing to do with LAVFSplitter BTW.

nevcairiel
28th August 2010, 07:27
Using EVR-CP, but only if i really seek extensively, usually doesnt bother me. And like i said, turning off reclock makes them go away. :)

Matching_Mole
28th August 2010, 08:23
Currently LAVFSplitter do not support MPLS files (Blu-ray Playlist) and so maybe streamless playback, I have an error with MPC-HC (cannot renderer the file). Do you plan to add this in futures versions?

nevcairiel
28th August 2010, 08:24
Playlists are not supported by avformat, and thus won't be supported by LAVFSplitter in the near future.
The perfect plan would be to somehow integrate libbluray for playlist parsing and lavfsplitter for demuxing, but this is just a pipe dream, don't expect anything soon.

nevcairiel
30th August 2010, 09:39
LAVFSplitter 0.8
- Alot of internal changes to enhance performance and maintainability
- Fixed a potential deadlock on seeking
- Fixed playing files without a video stream
- Fixed an issue that caused some players to hang on playback start
- Improved language detection

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.8.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.8-x64.zip)

The Seeking deadlock should be gone, however the crash with libmpeg2 in ffdshow is still present - i might have an idea, though.

Anyhow, like mentioned earlier, i'm moving into a new apartment this week, so don't expect much (if any) activity on my side.

hoborg
30th August 2010, 10:18
LAVFSplitter 0.8
- Alot of internal changes to enhance performance and maintainability
- Fixed a potential deadlock on seeking
- Fixed playing files without a video stream
- Fixed an issue that caused some players to hang on playback start
- Improved language detection

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.8.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.8-x64.zip)

The Seeking deadlock should be gone, however the crash with libmpeg2 in ffdshow is still present - i might have an idea, though.

Anyhow, like mentioned earlier, i'm moving into a new apartment this week, so don't expect much (if any) activity on my side.

Thanks.
Just let you known *.FLAC files doesnot working - graph is created correctly, but if i hit play, it wont start to play, in MPC-HC it will jump directly to end of track. Remuxed to *.MKA and it is working fine. DTS, AC3 and OGG working fine. *.MPC seems to be not supported at all.

Ger
30th August 2010, 19:19
LAVFSplitter 0.8
The Seeking deadlock should be gone
Yup, seems to be completely gone. No regression with the MS decoder due to the partial flushing behavior revert either. Good job.

however the crash with libmpeg2 in ffdshow is still present - i might have an idea, though.

Anyhow, like mentioned earlier, i'm moving into a new apartment this week, so don't expect much (if any) activity on my side.

I was actually planning to report this in the ffdshow thread, but since you may have an idea about it I guess I'll wait and see. No problem if it takes a few weeks before you can look into it further.

There is also an issue I've discovered with playback stopping when enabling DVB-subs in the "Henry IV" sample (seems to stop when the subs are about to be rendered) with ffdshow/libavcodec as the video decoder (seemingly not an issue with MPC-HC internal libmpeg2 decoder). I'll get back to this another day, I need to do more testing to see which versions/decoders are affected.

BTW, AR is correct for "John Adams" sample even with the MS decoder now. I guess this was fixed in 0.6, but I didn't test it then. Don't see any hearing impaired tag on one of the sub tracks, but I take it that just means Underground78's patch isn't applied yet.

All in all 0.8 is certainly the best version so far IMHO. :)

Good luck with the move.

Underground78
30th August 2010, 22:02
Don't see any hearing impaired tag on one of the sub tracks, but I take it that just means Underground78's patch isn't applied yet.

Yep, you are right. If you really need this now, I can upload a patched version of version 0.8.

Ger
30th August 2010, 22:16
Not necessary. Definitely no rush. Just wanted to mention it in case it had been forgotten.

Underground78
30th August 2010, 23:11
Hi,

I have a file which does not start with LAVFSplitter and I have been try to understand what was going on with the debugging. In fact the first image of the video is displayed then it freezes but the duration counter keeps going.

If I look at stack traces which concern LAVFDShowSplitter I see :

- for CLAVFOutPut Pin Video thread :
LAVFDShowSplitter.ax!CBaseOutputPin::GetDeliveryBuffer(IMediaSample * * ppSample, __int64 * pStartTime, __int64 * pEndTime, unsigned long dwFlags) Ligne 2654 + 0x2c octets C++
02de6c50()
LAVFDShowSplitter.ax!CLAVFOutputPin::ThreadProc() Ligne 275 + 0x23 octets C++
LAVFDShowSplitter.ax!CAMThread::InitialThreadProc(void * pv) Ligne 123 + 0xe octets C++

- for CLAVFOutPut Pin Audio thread :
LAVFDShowSplitter.ax!CBaseOutputPin::GetDeliveryBuffer(IMediaSample * * ppSample, __int64 * pStartTime, __int64 * pEndTime, unsigned long dwFlags) Ligne 2654 + 0x2c octets C++
02de7050()
LAVFDShowSplitter.ax!CLAVFOutputPin::ThreadProc() Ligne 275 + 0x23 octets C++
LAVFDShowSplitter.ax!CAMThread::InitialThreadProc(void * pv) Ligne 123 + 0xe octets C++

- demuxer thread seems to sleep(1) because the queue is full.

In fact both Output Pin threads are waiting for "m_pAllocator->GetBuffer(ppSample,pStartTime,pEndTime,dwFlags);" to return but it never does ...

Does somebody have an idea about what could cause this ?

Thanks in advance !

_xxl
31st August 2010, 06:55
I was trying to find the crash issue with libmpeg2, but all i see is stack traces deep into ffdshow and libmpeg2. Anyone with a personal interest in getting it fixed should probably give a detailed report to ffdshow, maybe its on their end, or at least can point the finger on something specific thats going wrong.

In the meantime, the MPC-HC internal mpeg2 decoder (also based on libmpeg2) works fine, as well as the libavcodec based mpeg2 decoder in ffdshow .. so many working choices! :D

I have updated libmpeg2 from ffdshow to latest revision and there is some custom code. MPC libmpeg2 I don't know I see revision 0.3.2.

hoborg
31st August 2010, 17:30
@nevcairiel:
Can you please look on this (http://forum.doom9.org/showthread.php?p=1430550#post1430550)?

?solution (http://forum.doom9.org/showthread.php?p=1430670#post1430670)?

Virtual_ManPL
31st August 2010, 19:46
Can someone confirm that on repeating movie, audio is muted on second go

STaRGaZeR
31st August 2010, 20:17
Can someone confirm that on repeating movie, audio is muted on second go

Yup, confirmed.

Blight
1st September 2010, 13:18
Hi,
This is quite important, can you please expose the same sub-types as other existing filters?

For example, after registering the filter, trying to play an AVI file with XVID video and MP3 audio fails using the standard microsoft AVI splitter as the "file source (async)" filter exposes a different sub-type.
This behavior breaks compatibility with players that rely on the filter's sub-type to identify media formats and breaks support for existing filters that rely on these sub-types for the same purpose.

nevcairiel
1st September 2010, 19:36
Hi,
This is quite important, can you please expose the same sub-types as other existing filters?

For example, after registering the filter, trying to play an AVI file with XVID video and MP3 audio fails using the standard microsoft AVI splitter as the "file source (async)" filter exposes a different sub-type.
This behavior breaks compatibility with players that rely on the filter's sub-type to identify media formats and breaks support for existing filters that rely on these sub-types for the same purpose.

LAVFSplitter is not a replacement for "file source (async)", its a replacement for the AVI Splitter. The big difference being that AVI Splitter relys on the file source to get data, while LAVFSplitter directly reads the files. This is currently required for libavformat to do its magic.

Obviously, trying to use another splitter on top of this will fail.

If a player relys on detecing the subtype of the data being send between source and splitter to detect file type .. well, what a sucky player. Can't help you there right now.
When i get bored some time, i might add the possibility to use a different file source to feed the splitter part, but me being bored, like thats going to happen.

Underground78
2nd September 2010, 11:12
Hi,

I have a file which does not start with LAVFSplitter and I have been try to understand what was going on with the debugging. In fact the first image of the video is displayed then it freezes but the duration counter keeps going.

If I look at stack traces which concern LAVFDShowSplitter I see :

- for CLAVFOutPut Pin Video thread :
LAVFDShowSplitter.ax!CBaseOutputPin::GetDeliveryBuffer(IMediaSample * * ppSample, __int64 * pStartTime, __int64 * pEndTime, unsigned long dwFlags) Ligne 2654 + 0x2c octets C++
02de6c50()
LAVFDShowSplitter.ax!CLAVFOutputPin::ThreadProc() Ligne 275 + 0x23 octets C++
LAVFDShowSplitter.ax!CAMThread::InitialThreadProc(void * pv) Ligne 123 + 0xe octets C++

- for CLAVFOutPut Pin Audio thread :
LAVFDShowSplitter.ax!CBaseOutputPin::GetDeliveryBuffer(IMediaSample * * ppSample, __int64 * pStartTime, __int64 * pEndTime, unsigned long dwFlags) Ligne 2654 + 0x2c octets C++
02de7050()
LAVFDShowSplitter.ax!CLAVFOutputPin::ThreadProc() Ligne 275 + 0x23 octets C++
LAVFDShowSplitter.ax!CAMThread::InitialThreadProc(void * pv) Ligne 123 + 0xe octets C++

- demuxer thread seems to sleep(1) because the queue is full.

In fact both Output Pin threads are waiting for "m_pAllocator->GetBuffer(ppSample,pStartTime,pEndTime,dwFlags);" to return but it never does ...

Does somebody have an idea about what could cause this ?

Thanks in advance !

I am still trying to understand this so I compiled a debug version of MPC-HC and here what I got :

- CLAVFOutPut Pin Video thread :
mpc-hc.exe!CBaseOutputPin::GetDeliveryBuffer(IMediaSample * * ppSample, __int64 * pStartTime, __int64 * pEndTime, unsigned long dwFlags) Ligne 2654 + 0x2c octets C++
mpc-hc.exe!CBaseVideoFilter::GetDeliveryBuffer(int w, int h, IMediaSample * * ppOut) Ligne 122 + 0x25 octets C++
mpc-hc.exe!CMpeg2DecFilter::DeliverFast() Ligne 593 + 0x25 octets C++
mpc-hc.exe!CMpeg2DecFilter::Transform(IMediaSample * pIn) Ligne 536 + 0x8 octets C++
mpc-hc.exe!CBaseVideoFilter::Receive(IMediaSample * pIn) Ligne 107 + 0x13 octets C++
mpc-hc.exe!CTransformInputPin::Receive(IMediaSample * pSample) Ligne 763 + 0x19 octets C++
mpc-hc.exe!CDeCSSInputPin::Receive(IMediaSample * pSample) Ligne 90 + 0x13 octets C++
LAVFDShowSplitter.ax!CBaseOutputPin::Deliver(IMediaSample * pSample) Ligne 2695 + 0x20 octets C++
LAVFDShowSplitter.ax!CLAVFOutputPin::DeliverPacket(Packet * pPacket) Ligne 345 + 0x13 octets C++
LAVFDShowSplitter.ax!CLAVFOutputPin::ThreadProc() Ligne 275 + 0x23 octets C++
LAVFDShowSplitter.ax!CAMThread::InitialThreadProc(void * pv) Ligne 123 + 0xe octets C++

- CLAVFOutPut Pin Audio thread :
mpc-hc.exe!CBaseOutputPin::GetDeliveryBuffer(IMediaSample * * ppSample, __int64 * pStartTime, __int64 * pEndTime, unsigned long dwFlags) Ligne 2654 + 0x2c octets C++
mpc-hc.exe!CStreamSwitcherInputPin::InitializeOutputSample(IMediaSample * pInSample, IMediaSample * * ppOutSample) Ligne 384 + 0x7f octets C++
mpc-hc.exe!CStreamSwitcherInputPin::Receive(IMediaSample * pSample) Ligne 750 + 0x1e octets C++
mpc-hc.exe!CBaseOutputPin::Deliver(IMediaSample * pSample) Ligne 2695 + 0x20 octets C++
mpc-hc.exe!CMpaDecFilter::Deliver(ATL::CAtlArray<float,ATL::CElementTraits<float> > & pBuff, unsigned long nSamplesPerSec, unsigned short nChannels, unsigned long dwChannelMask) Ligne 1730 + 0x29 octets C++
mpc-hc.exe!CMpaDecFilter::ProcessMPA() Ligne 1597 + 0x23 octets C++
mpc-hc.exe!CMpaDecFilter::Receive(IMediaSample * pIn) Ligne 494 + 0x8 octets C++
mpc-hc.exe!CTransformInputPin::Receive(IMediaSample * pSample) Ligne 763 + 0x19 octets C++
mpc-hc.exe!CDeCSSInputPin::Receive(IMediaSample * pSample) Ligne 90 + 0x13 octets C++
LAVFDShowSplitter.ax!CBaseOutputPin::Deliver(IMediaSample * pSample) Ligne 2695 + 0x20 octets C++
LAVFDShowSplitter.ax!CLAVFOutputPin::DeliverPacket(Packet * pPacket) Ligne 345 + 0x13 octets C++
LAVFDShowSplitter.ax!CLAVFOutputPin::ThreadProc() Ligne 275 + 0x23 octets C++
LAVFDShowSplitter.ax!CAMThread::InitialThreadProc(void * pv) Ligne 123 + 0xe octets C++

It seems that the problem happens after the samples have been decoded but I don't know how to find what happens exactly ... :(

Tsukihime
2nd September 2010, 11:57
I've just uninstalled Haali and installed LAVFSplitter, then turn Matroska in MPC-HC's internal filters off, but when I play all .mkv files, mpc-hc still use its internal filters as "low merit"

Blight
2nd September 2010, 14:41
nevcairiel:
You misunderstood me.

What I was saying is:
1. When the "LAVFSplitter" is registered, it BREAKS standard graphs that are NOT using LAVFSplitter.
2. When the "LAVFSplitter" is used in a grpah, it exposes sub-types that are not compatible with the sub-types exposed by the standard AVI Splitter.
There's no reason not to expose the same sub-types on the output pins as it breaks compatibility and prevents drop-in replacement.

And the player does not detect the file type by the 'source -> splitter' connection, it uses the sub_type to detect the various audio/video codecs required to play that particular media. If the splitter exposes a different subtype on it's output pin compared to other splitters for the same codec, it creates compatibility issues.

nevcairiel
2nd September 2010, 18:58
1. When the "LAVFSplitter" is registered, it BREAKS standard graphs that are NOT using LAVFSplitter.


Impossible. If the filter graph does not load a filter, there is no way it can influence it.



2. When the "LAVFSplitter" is used in a grpah, it exposes sub-types that are not compatible with the sub-types exposed by the standard AVI Splitter.
There's no reason not to expose the same sub-types on the output pins as it breaks compatibility and prevents drop-in replacement.

On what codec would that be?
And yes, there are reasons for change, for example when the previous "default" was just wrong, i won't stick with it. I don't believe in keeping broken things around just to please other broken software.
Anyhow, without knowing on what kind of file, i can't say if its an error or by design. Since you're talking about AVI, i would assume one of the MPEG-4 ASP variants, which all seem to play fine here, fwiw =)

hoborg
2nd September 2010, 20:45
Hi.
If somebody interested why Cyberlink VC-1 decoder does not work with LAVF - look here (http://www.avsforum.com/avs-vb/showthread.php?p=18361179#Using%20CyberLink%20Video%20Decoder%20%28PDVD10%29%20for%20VC-1).

nevcairiel
2nd September 2010, 21:15
I wonder if just adding the custom mediatype to VC-1 output would make the cyberlink decoder work.
I'll try to remember to check back on that next week.

hoborg
2nd September 2010, 21:22
I wonder if just adding the custom mediatype to VC-1 output would make the cyberlink decoder work.
I'll try to remember to check back on that next week.

I bet it will. If you open m2ts vc-1i sample i sended you in graphstudio using MPC-HC splitter with loader installed, it will connect, but it stutter. Just delete loader from graph and connect splitter directly to Cyberlink decoder - it will connect. Now playback is perfect.

hoborg
3rd September 2010, 07:12
BTW, just in theroy, it is possible on splitter level to detect if VC-1 source is:

progresive - then output as {31435657-0000-0010-8000-00AA00389B71}
interlaced - then output as {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}

VipZ
4th September 2010, 13:10
Hi, I have found two bugs, one in mostly found in SD MP4 and other is OGM files (Does OGM have same level of support as OGG?)

MP4/H264: Many files just don't display the video, also ffdshow doesn't show any video info (Tested same file on ffplay and was fine) I have also remuxed this to MKV and the same issue occurs.

Here is the info from file
General
Complete name : D:\TEST.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 175 MiB
Duration : 22mn 40s
Overall bit rate : 1 079 Kbps
Encoded date : UTC 2006-07-28 16:11:34
Tagged date : UTC 2006-07-28 16:11:34

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 13 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 22mn 40s
Bit rate mode : Variable
Bit rate : 946 Kbps
Maximum bit rate : 4 986 Kbps
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.128
Stream size : 153 MiB (88%)
Writing library : x264 core 48 svn-537M
Encoding settings : cabac=1 / ref=10 / deblock=1:-2:-1 / analyse=0x3:0x133 / me=umh / subme=7 / brdo=1 / mixed_ref=1 / me_range=22 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / chroma_qp_offset=0 / slices=1 / nr=0 / decimate=1 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / bime=1 / keyint=480 / keyint_min=12 / scenecut=50 / rc=2pass / bitrate=946 / ratetol=1.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=12 / qpmax=51 / qpstep=8 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.30 / pb_ratio=1.35
Language : Japanese
Encoded date : UTC 2006-07-28 16:11:34
Tagged date : UTC 2006-07-28 16:11:57

Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 4
Format profile : LC
Format settings, SBR : No
Codec ID : 40
Duration : 22mn 40s
Bit rate mode : Variable
Bit rate : 129 Kbps
Maximum bit rate : 162 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Stream size : 20.9 MiB (12%)
Language : Japanese
Encoded date : UTC 2006-07-28 16:11:56
Tagged date : UTC 2006-07-28 16:11:57

Menu
00:00:00.000 : Opening
00:01:16.076 : Part A
00:11:23.308 : Part B
00:20:54.254 : Ending
00:22:10.330 : Preview



OGM: I found most files with multiple audio streams and sub's give a stuttered video playback.

If you need samples let me know.

Thanks

nevcairiel
5th September 2010, 06:55
BTW, just in theroy, it is possible on splitter level to detect if VC-1 source is:

progresive - then output as {31435657-0000-0010-8000-00AA00389B71}
interlaced - then output as {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}
I looked for those flags before, but libavformat doesn't seem to know. Maybe its in the VC-1 format header, but i would have to parse that myself then.

Hi, I have found two bugs, one in mostly found in SD MP4 and other is OGM files (Does OGM have same level of support as OGG?)

MP4/H264: Many files just don't display the video, also ffdshow doesn't show any video info (Tested same file on ffplay and was fine) I have also remuxed this to MKV and the same issue occurs.


OGM: I found most files with multiple audio streams and sub's give a stuttered video playback.

If you need samples let me know.

Thanks
Samples would be useful.

nevcairiel
9th September 2010, 16:11
MP4/H264: Many files just don't display the video, also ffdshow doesn't show any video info (Tested same file on ffplay and was fine)

Fixed, thanks for the sample. This fix probably affects many AVC1 files, hopefully only in a good way =)


OGM: I found most files with multiple audio streams and sub's give a stuttered video playback.

I couldn't really reproduce this problem, maybe it was fixed by some other change i did before, please re-test with the next version once its out.

@nevcairiel:
Can you please look on this (http://forum.doom9.org/showthread.php?p=1430550#post1430550)?

?solution (http://forum.doom9.org/showthread.php?p=1430670#post1430670)?
Fixed.

I applied a general purpose fix that honors the original FourCC of the container file. I hope this doesn't cause any problems, but if it does, report which files stopped playing now.
This should probably address the issue Blight was addressing, even when worded poorly.

BatKnight
9th September 2010, 19:10
nevcairiel, are you going to post a newer version of your splitter or are you already implementing it on MPC-HC?

Thanks

Bat

VipZ
9th September 2010, 19:17
Thanks nevcairiel :)

I also think I found the same bug with the OGM in AVI's with H264, but I will wait and see how things fair when you release new version and report back.

nevcairiel
9th September 2010, 20:10
nevcairiel, are you going to post a newer version of your splitter or are you already implementing it on MPC-HC?

Integration in MPC-HC will be quite a while, don't expect it this year. There will be a new version over the weekend, i guess, next week at the latest.


I also think I found the same bug with the OGM in AVI's with H264, but I will wait and see how things fair when you release new version and report back.
AVIs with H264? Who does that kind of thing? Is that even possible? I didnt think AVI really liked B-frames.

VipZ
9th September 2010, 22:02
AVIs with H264? Who does that kind of thing? Is that even possible? I didn't think AVI really liked B-frames.

Its not common, and I haven't seen anything new like this for awhile, but a little while ago people did do this sadly.

If you interested in a sample I will get one up for you.

Midzuki
11th September 2010, 21:40
AVIs with H264? Who does that kind of thing? Is that even possible? I didnt think AVI really liked B-frames.

http://forums.animesuki.com/showthread.php?p=627630#post627630 says:



<SNIPP anti-AVI trolling />

In fact, the only h.264 feature that really doesn't fit into AVI is the b-pyramid.

<SNIPP more anti-AVI trolling />

nevcairiel
12th September 2010, 19:36
LAVFSplitter 0.9
- Added support for distinguishing hearing impaired subtitles in mpeg-ts streams
- Added BluRay LPCM support
- MP1/MP2 audio media type fixes
- Honor the original FourCC of the file in media type generation
- Added support for using the Cyberlink VC-1 decoder
- Fixed an issue with some H264/AVC1 files that caused video to not play at all
- Fixed unicode in chapter names
- Fixed getting the current chapter

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.9.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.9-x64.zip)

Like you can see, this is mostly a media type and bugfix release. I hope to finally tackle some of the features on my list for 0.10.
I also finally updated my copy of ffmpeg to sync against the main ffmpeg repository, so i can keep it updated more easily.

Please report any regressions, some of the media type changes might cause breakage with some formats and decoders, but hopefully not too many. =)

Btw, the Cyberlink VC-1 decoder works like a charm, i don't even have the async issue i have with the MS decoder.

diizzy
12th September 2010, 23:16
First of all, great work highly appreciated!

Issues I've found so far:
VOBs with LPCM doesn't seem to connect to either ffdshow or MPC-HCs decoder
OGM files (with subs haven't tried without) have jerky / stuttering video playback while sound is fine. Works without any issues using MPC-HCs OGG-splitter. (this is reported earlier)
Accepts some MP4 and FLV files, ripped/downloaded files from nicovideo (nico nico douga) doesn't work (both MP4 and FLV) although some MP4 files works. Seems to be rather random...

Here are some samples...

http://projects.pyret.net/dump/lavfsamples/sm583125.flv (doesn't work)
http://projects.pyret.net/dump/lavfsamples/sm7910320.mp4 (doesn't work)

And below information regarding LPCM issue


Media Type 0:
--------------------------
Audio: 0x0000 48000Hz stereo 1536kbps

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

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

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


Mediainfo


Audio ID : 160 (0xA0)
Format : PCM
Format settings, Endianness : Big
Format settings, Sign : Signed
Muxing mode : DVD-Video
Duration : 6mn 0s
Bit rate mode : Constant
Bit rate : 1 536 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits


This is using version 0.9, searching is very fast no matter what file format (container). :-)

TheFluff
13th September 2010, 00:53
http://forums.animesuki.com/showthread.php?p=627630#post627630 says:
I made that post in 2006 and the part you quoted is obviously wrong. H.264 does "work" in AVI, for certain definitions of work (see deaththesheep's endless hurfing and durfing etc). It's a slightly bigger hack than XviD with b-frames in AVI is, but not very much. I wouldn't bother trying to support it though; I'm pretty sure lavf just breaks on it anyway.

Anyway, AVI is a shitty container, don't use it. I don't really see the point of including support for it in lavfsplitter either because most of the "interesting" files you will encounter in the wild rely on quirks in Microsoft's splitter anyway.

naomatrix
13th September 2010, 01:16
Sensation, great you did it, VC1 in .MKV plus CyberLink Video Decoder (PDVD10) go with DXVA in PotPlayer on VMR9renderless. Thanks.:thanks:
http://i1.imageban.ru/thumbs/2010.09.13/f496b254b1cc413a549d34517af3e965.jpg (http://imageban.ru/show/2010/09/13/f496b254b1cc413a549d34517af3e965/jpg)

Midzuki
13th September 2010, 02:18
I made that post in 2006 and the part you quoted is obviously wrong.

Thanks for taking the time to correct yourself. :)

I don't really see the point of including support for it in lavfsplitter either because most of the "interesting" files you will encounter in the wild rely on quirks in Microsoft's splitter anyway.

That's a good point, I have to say. http://forum.doom9.org/images/icons/icon14.gif

Sebastiii
13th September 2010, 06:19
LAVFSplitter 0.9
- Added support for distinguishing hearing impaired subtitles in mpeg-ts streams
- Added BluRay LPCM support
- MP1/MP2 audio media type fixes
- Honor the original FourCC of the file in media type generation
- Added support for using the Cyberlink VC-1 decoder
- Fixed an issue with some H264/AVC1 files that caused video to not play at all
- Fixed unicode in chapter names
- Fixed getting the current chapter

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.9.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.9-x64.zip)

Like you can see, this is mostly a media type and bugfix release. I hope to finally tackle some of the features on my list for 0.10.
I also finally updated my copy of ffmpeg to sync against the main ffmpeg repository, so i can keep it updated more easily.

Please report any regressions, some of the media type changes might cause breakage with some formats and decoders, but hopefully not too many. =)

Btw, the Cyberlink VC-1 decoder works like a charm, i don't even have the async issue i have with the MS decoder.

Great works like usual :) i go to test this build today or this evening :)

And thanks for Underground78 for the patch of impaired subtitles :)
Again Great works Nevcairiel :thanks:

diizzy
13th September 2010, 08:36
I have updated libmpeg2 from ffdshow to latest revision and there is some custom code. MPC libmpeg2 I don't know I see revision 0.3.2.

Doing some reading it appears that the forked version of libmpeg2 in mplayer seems to work better than the original version, might be worth looking into.

v0lt
13th September 2010, 17:59
BUG: very fast playback -> http://www.mediafire.com/?yw56r54w0m9c6fw
QuickTime (AVC+AAC)

very strange. now displays correctly. :confused:

nevcairiel
13th September 2010, 18:06
Please always state the container format and the codecs used when reporting broken media, makes it easier to keep track of things, thanks!

v0lt
13th September 2010, 18:18
LAVFSplitter better than the built-in MPC-HC for the old mov-files. But it not connect to these files.

QuickTime: M-JPEG+PCM('raw ')
http://samples.mplayerhq.hu/A-codecs/qtraw/vb1.mov
http://samples.mplayerhq.hu/A-codecs/qtraw/vb2.mov
http://samples.mplayerhq.hu/A-codecs/qtraw/pict0162.mov

QuickTime: Sorenson 3+PCM('raw ')
http://samples.mplayerhq.hu/A-codecs/qtraw/Sumo_City.mov

QuickTime: Sorenson 3+PCM('fl32')
http://samples.mplayerhq.hu/A-codecs/qtfl32/vb3.mov

QuickTime: A-Law
http://samples.mplayerhq.hu/A-codecs/aLaw/surge-1-16-B-alaw.mov
http://samples.mplayerhq.hu/A-codecs/aLaw/surge-2-16-B-alaw.mov

QuickTime: U-Law
http://samples.mplayerhq.hu/A-codecs/uLaw/surge-1-16-B-ulaw.mov
http://samples.mplayerhq.hu/A-codecs/uLaw/surge-2-16-B-ulaw.mov

HeadlessCow
13th September 2010, 18:52
Is there any chance of adding Media Foundation support in addition to DirectShow? It'd be nice to get support for stuff like MKV on extenders without needing to install the Divx software (plus supporting way more formats than just MKV).

tetsuo55
13th September 2010, 19:14
Mediafoundation is on the to-do list

HeadlessCow
13th September 2010, 19:22
Awesome. I knew it was on the to-do list for ffdshow, but starting on something relatively simpler (there's not 5 years of dshow hacks in the code already) like this gets a lot of the way there since a large portion of time the audio/video codecs are supported by extenders, just not the container format :)

nevcairiel
13th September 2010, 19:29
Yes, i plan to do Media Foundation.

pankov
13th September 2010, 23:38
nevcairiel,
I've sent you a PM with couple of samples that don't work with your splitter.
sample_A.mkv brings an error "Cannot load specified file" when I try to add lavfsplitter in GraphStudio. The "special" thing about this file is that it has huge amount of embedded subtitles ... 40 if I remember correctly. Haali splitter doesn't work on it too but MPC's MatroskaSplitter.ax works just fine.
sample_G.mkv crashesh GraphStudio without even given an error. The "special" thing about it is that it has two "versions" of the movie in it - both Theatrical and Extended. Haali works fine with it and gives the option to switch the streams while MPC's splitter doesn't show the two streams.
I really hope that your splitter will be "the one to rule them all".

LloydA
14th September 2010, 00:03
0.9 can't be installed on a standard W7 x64 system.

Dependency Walker says MSCVP100.DLL, MSVCR100.DLL, GPSCV.DLL and IESHIMS.DLL are missing dependencies.

Log:

Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

EDIT:

Nevermind, just saw the message about the runtime. Perhaps this could be placed a bit more prominently in the first post (bold, bigger font, ...)

nevcairiel
14th September 2010, 06:57
sample_A.mkv brings an error "Cannot load specified file" when I try to add lavfsplitter in GraphStudio. The "special" thing about this file is that it has huge amount of embedded subtitles ... 40 if I remember correctly.
Interesting, will check it out.

sample_G.mkv crashesh GraphStudio without even given an error. The "special" thing about it is that it has two "versions" of the movie in it - both Theatrical and Extended. Haali works fine with it and gives the option to switch the streams while MPC's splitter doesn't show the two streams.

I can probably fix the crash, however the mkv "editions" and ordered chapters are not supported by libavformat at this time, so i cannot easily fix this. There are plans to get this working in the future.

mariner
14th September 2010, 08:17
Yes, i plan to do Media Foundation.

Greetings nevcairiel. This is excellent.

You can use TMT3 ver 175 video decoder for VC1 testing without a loader. Later versions seem to have problem with handling interlaced contents using DXVA.

By the way, any plans to support evo, like in Potplayer?

Many thanks and best eragrds.

hoborg
14th September 2010, 08:25
Greetings nevcairiel. This is excellent.

You should use TMT3 ver 175 video decoder for VC1 testing. It works without the need for a loader. Later versions seem to have problem with handling interlaced contents using DXVA.

By the way, any plans to support evo, like in Potplayer?

Many thanks and best eragrds.

Is not TMT VC-1 decoder 30days trail only?
Cyberlink doesnot have any limitation.

nevcairiel
14th September 2010, 08:27
I do own a retail copy of TMT3, so i could probably test that somehow.
I, however, have 185 installed. ;)

mariner
14th September 2010, 08:36
You may need this (http://forum.doom9.org/showpost.php?p=1392750&postcount=1). Courtesy of _shard.

nevcairiel
14th September 2010, 12:14
I'm currently working on defining the logic for smart stream selection, and here is what i have so far.
This is mostly based on the flag description in the mkv spec

- Filter Streams by user preferred languages
- If Streams matching language found, check if one is marked "Forced" and use that one
- If no Streams matching language found, check if one is marked "Default"
- If there is either no stream found by now, or more then one matches the criteria above, match by Quality (Codec and Resolution or number of channels, for video/audio respectively, and bitrate if available)

I want to add one option to the whole thing, that is for subtitles. You could select "Never use subs" (always select "no subtitles"), "Forced Subs" (only shows forced subs), "Always use subs" (always selects a subs stream matching your preferred language, possibly even one not set as forced to have full subs?)

Anyhow, suggestions on the whole concept are welcome!

starla
14th September 2010, 13:06
Anyhow, suggestions on the whole concept are welcome!

Ability to disable that feature to allow the playback application to handle the preferred language for audio / subtitle tracks :)

nevcairiel
14th September 2010, 13:08
I could add a checkbox, but in theory it doesn't matter. It won't force anything, its just for the selection of which streams to start with, if the application (or the user) changes something, it'll change the streams like now.

SamuriHL
14th September 2010, 13:27
I'm currently working on defining the logic for smart stream selection, and here is what i have so far.
This is mostly based on the flag description in the mkv spec

- Filter Streams by user preferred languages
- If Streams matching language found, check if one is marked "Forced" and use that one
- If no Streams matching language found, check if one is marked "Default"
- If there is either no stream found by now, or more then one matches the criteria above, match by Quality (Codec and Resolution or number of channels, for video/audio respectively, and bitrate if available)

I want to add one option to the whole thing, that is for subtitles. You could select "Never use subs" (always select "no subtitles"), "Forced Subs" (only shows forced subs), "Always use subs" (always selects a subs stream matching your preferred language, possibly even one not set as forced to have full subs?)

Anyhow, suggestions on the whole concept are welcome!

THAT would rock! This is what a lot of us are looking for in a splitter right now and would absolutely rule all if you were to implement it exactly like that. From what I understand it's possible to have multiple subs on at the same time in some cases...I.E. forced and non-forced could be on at the same time. I thought that was odd, but, apparently it's true.

nevcairiel
14th September 2010, 13:31
From what I understand it's possible to have multiple subs on at the same time in some cases...I.E. forced and non-forced could be on at the same time. I thought that was odd, but, apparently it's true.
Now that will be more complicated. It won't exactly fit my stream selector thing, and i would have to create new output pins for them .. oh well.
I'll keep that in mind for some time later.

Did i mention that i'm not a big subtitle user?

pankov
14th September 2010, 13:35
nevcairiel,
I think that the stream selection should be done by the player, but I do agree that we should have good "defaults" ... I'm just not sure if all this is worth the effort.
btw
There is still problem using your splitter in ZoomPlayer. I can't find the reason why every other splitter/source filter I've tried works fine just LAVFSplitter doesn't. And I've used a few including Haali, MPC's different source filters, HDTV Pump, DC-Bass Source, madTestpatternSource, DivX MKV Demux, NVidia ATSC File source and others. So I guess it's simply some kind of "communication issue" that prevents ZoomPlayer from using your splitter, which I hope will be my future favorite splitter/source filter.

SamuriHL
14th September 2010, 13:36
Now that will be more complicated. It won't exactly fit my stream selector thing, and i would have to create new output pins for them .. oh well.
I'll keep that in mind for some time later.

Did i mention that i'm not a big subtitle user?

I'm not, really, either except in the case of forced subs. But when I was discussing the forced sub flags with Solveig someone mentioned this issue. I thought it was pretty whacked myself, but, I guess it's possible in the spec to do that. I just thought I'd mention it. The way it supposedly works is that forced are "always on" if set, and then they can also select another sub that gets played in addition. I don't know, that just seems weird to me, but, supposedly that's how it works.

nevcairiel
14th September 2010, 13:37
I think that the stream selection should be done by the player, but I do agree that we should have good "defaults" ... I'm just not sure if all this is worth the effort.


There is currently no way to export the "Default" and "Forced" flags to the player, so it can't do this choice for you. If some of the player developers would be willing, we could define a new interface i can export on the output pins to query those flags, or an extension on IAMStreamSelect, but right now, only the splitters knows.

I'm not, really, either except in the case of forced subs.
Too bad i can't get the Forced flag out of m2ts for blurays (yet!). :(

SamuriHL
14th September 2010, 14:16
Too bad i can't get the Forced flag out of m2ts for blurays (yet!). :(

You'll get there. :) Maybe madshi or one of the other gurus can help you out on that one.

nevcairiel
14th September 2010, 14:40
I don't think the info is actually in the m2ts, rather in the playlists or clipinfo files, and i don't want to parse them manually.
libbluray needs to mature a bit. :)

SamuriHL
14th September 2010, 14:42
The chapter info is in the playlists. I thought the forced flags were embedded in the PGS subs inside the m2ts container, though. Maybe I'm mistaken on that.

rack04
14th September 2010, 14:49
The chapter info is in the playlists. I thought the forced flags were embedded in the PGS subs inside the m2ts container, though. Maybe I'm mistaken on that.

I think you are correct since BDSup2Sub is able to detect the forced flag on PGS subs.

tetsuo55
14th September 2010, 15:23
I'm currently working on defining the logic for smart stream selection, and here is what i have so far.
This is mostly based on the flag description in the mkv spec

- Filter Streams by user preferred languages
- If Streams matching language found, check if one is marked "Forced" and use that one
- If no Streams matching language found, check if one is marked "Default"
- If there is either no stream found by now, or more then one matches the criteria above, match by Quality (Codec and Resolution or number of channels, for video/audio respectively, and bitrate if available)

I want to add one option to the whole thing, that is for subtitles. You could select "Never use subs" (always select "no subtitles"), "Forced Subs" (only shows forced subs), "Always use subs" (always selects a subs stream matching your preferred language, possibly even one not set as forced to have full subs?)

Anyhow, suggestions on the whole concept are welcome!Exactly like that would be perfect (for video, audio and subtitles)

There is one other variant of multiple subtitles, and thats what chinese often use, both english and chinese at the same time. (and sometimes even a 3rd)

nevcairiel
14th September 2010, 15:36
I think you are correct since BDSup2Sub is able to detect the forced flag on PGS subs.

I looked into the BDSub2Sub source and trying to see how its done, but without a documented specification of the PGS format, its still stabbing into the dark.

nevcairiel
14th September 2010, 17:19
Okay, i figured out how to do it, in theory. However, it won't be that easy in practice. The problem is that i won't have any data about the sub stream until the first package arrives. And with subs, especially forced subs, that can be a while. Quite a while, actually. I can't start parsing the whole movie in the hope finding the one forced sub entry somewhere at the end of the movie =/

If someone knows how to extract those flags from a MPEG-TS, i'm willing to listen, until then, i'll put this on hold.
When i implement libbluray, it might give me this information in another form, until then, i'm out of ideas - for now.

dann23
19th September 2010, 07:05
can lavfsplitter be used to decode aac streams?

nevcairiel
19th September 2010, 09:25
lavfsplitter is not a decoder, its a demuxer. However in theory it should be able to read .aac files, you still need a decoder, however.

dann23
19th September 2010, 13:57
please excuse me :D I wanted to say demux not decode. right now I'm using DCBasssource. but if possible I want to use lavfsplitter. as decoder I already have ffdshow installed. And to be sure, by aac streams I mean online radio stations.

nevcairiel
19th September 2010, 14:00
It doesnt currently work for streaming media, but it could in theory. I am however not sure if those aac streams are part of that fucntionality in ffmpeg.

dann23
19th September 2010, 15:02
I'm not sure either. Maybe someone can help here.

adam777
21st September 2010, 07:51
Hello all,
I've just found out about LAVFSplitter and was eager to try it out.
I tried watching a 1080p MKV movie using latest (or close to latest) MPC-HC, FFDShow and madVR, and the result was a very choppy playback with the splitter enabled.
It is not a CPU usage problem, as it never goes up over 50% at max, and using Haali under the same setup I have no problem.
I realize this might not be the most informative feedback, but let me know what to check next in order to provide you with better details.
Thanks, Adam.

TheFluff
21st September 2010, 10:07
LAVF is still really bad at MKV. In FFMS2 we "solved" it by using Haali's parser instead, but that probably won't help you much.

nevcairiel
21st September 2010, 10:11
You mean libavformat itself is bad, or my directshow filter for it? Thats not always clear =P

I've heard before that people consider libavformat itself not pretty good for mkv, although it seems to work fine for me, but all my systems are pretty beefy, so if there is any performance bottleneck, i would probably not run into it.

I still have plans to use mplayers demuxer as an alternative, once time permits implementation.
I wonder how much work it would be to do it "manually" using libmatroska, though.

adam777
21st September 2010, 12:45
LAVF is still really bad at MKV. In FFMS2 we "solved" it by using Haali's parser instead, but that probably won't help you much.

Ah, that's good to know.
I mean, not "good" as in "good", but "good" as in "at least I know the cause".
Thanks.

TheFluff
21st September 2010, 13:10
You mean libavformat itself is bad, or my directshow filter for it? Thats not always clear =P

I've heard before that people consider libavformat itself not pretty good for mkv, although it seems to work fine for me, but all my systems are pretty beefy, so if there is any performance bottleneck, i would probably not run into it.

I'm talking about libavformat itself. It's not limited to just performance problems, it also has all sorts of other funny issues.

I don't really recommend libmatroska either; what we use is Haali's matroskaparser.c/h; it has a very nice and simple API. Take a look at matroska* in the FFMS2 source tree (http://code.google.com/p/ffmpegsource/source/browse/#svn/trunk/src/core) if you're interested.

nevcairiel
21st September 2010, 13:31
Nice, i didn't know that he provided his parser for open source projects to use, this looks great.

BatKnight
22nd September 2010, 14:21
Nice, can't wait to see Haali's matroskaparser in LAVFSplitter instead of libavformat.

Thanks for being interested in improving LAVFSplitter. Some of us maybe silent about it, but we are using it.

Bat

rack04
22nd September 2010, 14:46
I was wondering if XhmikosR can modify the installer so the user can select 32-bit or 64-bit?

v0lt
23rd September 2010, 17:15
nevcairiel
Build LAVFSplitter in VS2008 is real?

nevcairiel
23rd September 2010, 17:36
What now?
I don't understand your question, but it should build in VS2008 just fine, i just didn't bother with a project file since i'm using 2010.

rack04
24th September 2010, 03:07
I've noticed that some of my 24000/1001 fps mkv files with are played back at 24.000 fps (as reported by madVR) using LAVFSplitter. Using MPC-HC internal mkv splitter and Haali the file is played back at 23.976.

v0lt
24th September 2010, 03:50
nevcairiel
I want to compile the source code in VS2008. Not obtained yet.

nevcairiel
24th September 2010, 05:52
I've noticed that some of my 24000/1001 fps mkv files with are played back at 24.000 fps (as reported by madVR) using LAVFSplitter. Using MPC-HC internal mkv splitter and Haali the file is played back at 23.976.
Thats just a display issue, they are played at their proper speed. This seemed to be a issue with mkvs where the container said its a 24fps movie, and the movie itself claimed it was 23.976.

Fixed with h264, as this was the only format i encountered the problem with. If other files have the same issue, please let me know.

Virtual_ManPL
24th September 2010, 12:43
It's just me or AVI splitter don't work, because all I can see in MPC-HC is that, the default Windows AVI Splitter is used with File Source (Async.) in all avi files

XhmikosR
24th September 2010, 13:09
It works fine here with the latest git.
Filter : lavf dshow source filter - CLSID : {B98D13E7-55DB-4385-A33D-09FD1BA26338}

- Connected to:

CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Filter: ffdshow Video Decoder
Pin: In

- Connection media type:

Video: Xvid 624x352 23.98fps
Though I have an other problem with the video being played at 15fps instead of 23.976.

nevcairiel
24th September 2010, 16:34
Though I have an other problem with the video being played at 15fps instead of 23.976.

Fixed.

SamuriHL
24th September 2010, 17:04
Any idea when a new build will be posted? I'm interested in the LPCM fix you put in for MKV's. Thanks!

nevcairiel
24th September 2010, 17:32
I did want to get the stream selection in the next version, and i'm hoping to be able to implement it over the weekend. But who knows what happens.

SamuriHL
24th September 2010, 17:35
That'd be really sweet. Yea, no rush. Was merely curious if you had a target date. Thanks!

dann23
25th September 2010, 16:15
Is it possible to add support for amr and bink files?

Jeffster
25th September 2010, 16:55
Hi nevcairiel,

Could I humbly inquire if you have any update on the status of LATM AAC (http://forum.doom9.org/showthread.php?p=1427013#post1427013) support in LAVFSpitter?

It would be really great if there was finally a DirectShow splitter that works with LATM as this audio format was adopted here also for DVB-T broadcasts and it's proved to be nothing but a headache.

Thanks. :)

dann23
25th September 2010, 17:23
And I have another feature request. is it possible to make a configuration file where to specify for what formats to register?
Also I found a bug. If I'm using ffdshow dxva, I can't choose external subtitles and no external subtitle is used. If I'm not using dxva mode than external subtitles works but I can't choose the right one (I have some subtitles in the same folder as my movie).

nevcairiel
25th September 2010, 21:52
Is it possible to add support for amr and bink files?
Sample files?

Hi nevcairiel,

Could I humbly inquire if you have any update on the status of LATM AAC (http://forum.doom9.org/showthread.php?p=1427013#post1427013) support in LAVFSpitter?

I didn't really put more work in it so far. I can try again, but it proves to be quite difficult as libavformat doesn't understand it either.

And I have another feature request. is it possible to make a configuration file where to specify for what formats to register?

This will be in the config GUI.

Also I found a bug. If I'm using ffdshow dxva, I can't choose external subtitles and no external subtitle is used. If I'm not using dxva mode than external subtitles works but I can't choose the right one (I have some subtitles in the same folder as my movie).

External subtitles are not handled by the splitter, so i would vote for a ffdshow bug.

Jeffster
26th September 2010, 02:30
I didn't really put more work in it so far. I can try again, but it proves to be quite difficult as libavformat doesn't understand it either.

Thanks. :o Any efforts you can put in that direction, when you have the time and inclination of course, would be greatly appreciated by many I'm sure.

I must admit I got my hopes up perhaps too quickly when I saw this thread because the only applications that can understand and work with my TS files, and the LATM audio, are VLC and Handbrake which I tend to associate with libavformat/libavcodec (rightly or wrongly) but that probably doesn't mean anything.

dann23
26th September 2010, 05:36
Links with sample for amr and bink files
http://www.mediafire.com/?1353t5kyt9oya5c
http://www.mediafire.com/?8xbs4o87761afgx

And about the settings that will be in the GUI it's fine. but if I'm using regsrv32 to register the filter, how can I specify for what types to register before doing this?

nevcairiel
26th September 2010, 08:28
And about the settings that will be in the GUI it's fine. but if I'm using regsrv32 to register the filter, how can I specify for what types to register before doing this?

You can't. But after registering you can open the properties page (once its implemented), and turn off the formats you don't want it to handle.
It'll still be registered for those formats, but when a player tries to use it for a mkv file, and you turned mkv off, it'll just fail silently, and the player will try the next source filter.

Sebastiii
26th September 2010, 10:02
You can't. But after registering you can open the properties page (once its implemented), and turn off the formats you don't want it to handle.
It'll still be registered for those formats, but when a player tries to use it for a mkv file, and you turned mkv off, it'll just fail silently, and the player will try the next source filter.

Thanks, effectively it would be great :)
I always have pb with Mediaportal :( i try like we suggest with Tourettes but it doesn't work well too :(
I don't know how to help on this. I try on many version i have (for mediaportal final and svn and LAVF latest source too).
But i have also this issue with MPC-HC many times the video don't start and the player is freeze.
I suppose it's on splitter side and no Libavformat but i'm not sure too.
Again :) it's really appreciate the work you made m8 :) and also alone.
+++

Virtual_ManPL
26th September 2010, 11:37
It works fine here with the latest git.
Odd, in my case I use MPC-HC internal decoders & external Xvid and I can't get LAVFSplitter to work with AVI files.
Can you or someone confirm this ?

Virtual_ManPL
3rd October 2010, 21:17
nvm guys, I find finally what causes it

http://github.com/Nevcairiel/LAVFSplitter/issues/#issue/25

nevcairiel
4th October 2010, 11:12
Why can't everyone just speak english. =(
I probably know how to fix it, will try when i get home later today.

In related news, my time has been somewhat occupied with other projects that had an approaching deadline, and probably will be for at least a couple more weeks.

I'll release the last version i'm comfortable with as 0.10 soon, to fix more media playback issues. Guess stream/language selection has to wait again.

renethx
4th October 2010, 15:20
@nevcairiel

Will you add the support for ArcSoft Audio Decoder HD (TMT2/TMT3) to decode DTS-HD (and TrueHD) to LPCM? The trick in this post (http://forum.doom9.org/showthread.php?p=1446017#post1446017) works fine for DTS-HD decode with any DirectShow player + MPC MPEG Source (Gabest) + ArcSoft Audio Decoder HD (my own test (http://www.avsforum.com/avs-vb/showthread.php?p=19282099#post19282099)).

MPC MPEG Source (Gabest) + ArcSoft Audio Decoder HD does not work for TrueHD decode (silent). In the same split: MPC MPEG Source (Gabest) presents TrueHD as MEDIASUBTYPE_DOLBY_AC3 {E06D802C-DB46-11CF-B4D1-00805F6CBBEA} and the Arcsoft Demuxer presents the stream as {4288B843-610B-4E15-A53B-43007FCFF614}. So I opened MpegSplitter.ax in a hex editor and replace the two occurences of the hex string "2C806DE046DBCF11B4D100805F6CBBEA" with "43B888420B61154EA53B43007FCFF614" in the file. This worked to some extent, but not perfect...

nevcairiel
4th October 2010, 16:18
I already added support for using the ArcSoft decoder for DTS. TrueHD has another special media type as well?

SamuriHL
4th October 2010, 16:22
Yes, and it doesn't pass it properly in its own chain, either. MKV's, for example, won't play with TrueHD sound. I've reported it to ArcSoft so maybe that'll eventually get fixed.

renethx
4th October 2010, 17:30
I already added support for using the ArcSoft decoder for DTS. TrueHD has another special media type as well?
Hmm, lavf dshow source filter (v0.9) never connects ArcSoft Audio Decoder HD (TMT3) directly. :confused: It still presents DTS-HD as MediaSubType_DTS, the same as MPC source filters for DTS-HD, which is not a media subtype supported by AS decoder. Hex edit (http://forum.doom9.org/showthread.php?p=1446017#post1446017) makes it connect to AS decoder. DTS (non-HD) in DVD is fine with lavf dshow source filter/MPC source filters + ArcSoft Audio Decoder HD.

ArcSoft Demuxer presents TrueHD as {4288B843-610B-4E15-A53B-43007FCFF614}, while lavf dshow source filter/MPC Mpeg/Matroska source filter presents it as MEDIASUBTYPE_DOLBY_AC3 {E06D802C-DB46-11CF-B4D1-00805F6CBBEA}. So these filters won't work with ArcSoft Audio Decoder HD for TrueHD. These source filters still connect to AS decoder because MEDIASUBTYPE_DOLBY_AC3 is one of the supported media types of AS decoder (for AC3, not for TrueHD).

nevcairiel
4th October 2010, 20:59
It was added after 0.9 :p MEDIASUBTYPE_DTS2 is it, btw

In any case, why use ArcSoft for TrueHD?

renethx
4th October 2010, 21:21
It was added after 0.9 :p

In any case, why use ArcSoft for TrueHD?
I am not pretty sure about this point. For example, suppose that a user with an analog sound card wants to play M2TS/MKV files with HD audio tracks, TrueHD or DTS-HD. So he has to use both ffdshow and ArcSoft, with DTS support in ffdshow disabled and placing ArcSoft below ffdshow in external filters in MPC-HC. Further if a file contains multiple audio tracks, say AC3 primary and DTS secondary, then ffdshow is connected and changing audio to DTS later would result in no sound, I guess.

Using ArcSoft for the BD/DVD audio codecs and ffdshow for the rest is perhaps less troublesome.

nevcairiel
4th October 2010, 21:41
Actually switching audio tracks re-negotiates the audio codec thats being used with LAVFSplitter, so it would work switching around later.
Anyhow, i'll test with a truehd track.

nevcairiel
5th October 2010, 20:32
I implemented the ArcSoft TrueHD subtype today, seems to be working fine.

renethx
5th October 2010, 20:38
Great! Thanks.

Sebastiii
5th October 2010, 20:42
Nice :)

SamuriHL
5th October 2010, 20:42
Can you send the code to ArcSoft now? :D

renethx
5th October 2010, 21:30
OK, another request. :) For LPCM audio tracks, LAVFSplitter can't connect to ArcSoft Audio Decoder HD. If this is fixed, we can use ArcSoft Audio Decoder HD exclusively to ouput all BD audio codecs by analog, I think.

rica
5th October 2010, 22:19
As far as i understand it can not use "Open DVD" option; you should use "Open File" option on MPC-HC?

In this case Arcsoft MPEG Demux already done the job:

http://forum.doom9.org/showpost.php?p=1448413&postcount=49


_ _ _ _ _

nevcairiel
6th October 2010, 06:27
No you cannot use the Open DVD option. It would be cool if that worked, but thats not how it is right now. ;)
With the internal MPEG Splitter in MPC-HC you can open the index.bdmv file to get seamless branching to work, at least.
I'll try to implement this at a later date as well.

@renethx:
You wouldnt happen to have the LPCM media type arcsoft uses, would you?

renethx
6th October 2010, 08:38
You wouldnt happen to have the LPCM media type arcsoft uses, would you?
ArcSoft MPEG Demux presents LPCM as

MEDIATYPE_MPEG2_PES
{697AD091-7F64-43CC-86B0-5D190A372E2E}.

But replacing HDMV_LPCM_AUDIO {949F97FD-56F6-4527-B4AE-DDEB375AB80F} with {697AD091-7F64-43CC-86B0-5D190A372E2E} in MPC Mpeg Source (Gabest) does not work, but replacing HDMV_LPCM_AUDIO with MEDIASUBTYPE_DVD_LPCM_AUDIO {E06D8032-DB46-11CF-B4D1-00805F6CBBEA} works.

nevcairiel
6th October 2010, 08:55
You mixed up mediatype and media subtype here. I'll run som tests, i guess.

v0lt
7th October 2010, 18:45
nevcairiel
Where to get correct avconfig.h? Here (http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary) it is not.

v0lt
7th October 2010, 19:04
I took a avconfig.h from the mpc-hc project.

But there was another error:
1> LINK: fatal error LNK1104: cannot open file 'avformat-52.lib'

nevcairiel
7th October 2010, 19:45
You have run the build script i supplied. It creates the avconfig and the library its looking for.

v0lt
7th October 2010, 19:57
You have run the build script i supplied.
I have not done this? What is it called?

Kurtnoise
7th October 2010, 21:10
build_ff_win32.sh or build_ff_x64.sh in the root directory...

v0lt
8th October 2010, 04:21
Kurtnoise
What to do with it?
Visual Studio 2010 can not do anything with them. Quest?

Kurtnoise
8th October 2010, 08:00
You have to run it through MinGW/Msys...

I believe it's written in the ReadMe file.

v0lt
8th October 2010, 16:24
Thank you.
Only the errors appeared again.:confused:

XhmikosR
8th October 2010, 17:39
@v0lt: try this (http://pastebin.com/BAh8cGDW).

v0lt
8th October 2010, 19:03
@v0lt: try this (http://pastebin.com/BAh8cGDW).
Success!
:thanks:

v0lt
8th October 2010, 22:42
two video tracks, and no sound:
corpsebride_trailer_01.mov (http://www.mediafire.com/?gd8dubpapf5t713)
(in mpc-mp4-splitter sound is)

v0lt
9th October 2010, 10:16
update again :)
patch to support for these files:
(udta) RQ004F14.MOV (http://samples.mplayerhq.hu/mov/RQ004F14.MOV)
(wide-free) Chicherina_-_Uhodya_uhodi.mov (http://www.mediafire.com/?tp10yzb60sn5njd)
(free-cmov) breaking_up_the_girl.mov (http://www.mediafire.com/?rlucnt543bl7jf7)
(free-mvhd) detect_640_dl.mov (http://samples.mplayerhq.hu/mov/animatrix/detect_640_dl.mov)
(pnot-PICT) 1.mov (http://samples.mplayerhq.hu/mov/pnot-PICT/1.mov), P4250048.MOV (http://samples.mplayerhq.hu/mov/pnot-PICT/P4250048.MOV), pict0162.mov (http://samples.mplayerhq.hu/A-codecs/qtraw/pict0162.mov)
...\src\LAVFDShowSplitter\dllmain.cpp
// MP4
chkbytes.push_back(L"4,4,,66747970"); // ftyp
chkbytes.push_back(L"4,4,,6d6f6f76"); // moov
chkbytes.push_back(L"4,4,,6d646174"); // mdat
chkbytes.push_back(L"4,4,,736b6970"); // skip
+ chkbytes.push_back(L"4,4,,75647461"); // udta
chkbytes.push_back(L"4,12,ffffffff00000000ffffffff,77696465000000006d646174"); // wide ? mdat
+ chkbytes.push_back(L"4,12,ffffffff00000000ffffffff,776964650000000066726565"); // wide ? free
+ chkbytes.push_back(L"4,12,ffffffff00000000ffffffff,6672656500000000636D6F76"); // free ? cmov
+ chkbytes.push_back(L"4,12,ffffffff00000000ffffffff,66726565000000006D766864"); // free ? mvhd
+ chkbytes.push_back(L"4,14,ffffffff000000000000ffffffff,706E6F7400000000000050494354"); // pnot ? PICT
chkbytes.push_back(L"3,3,,000001"); // mpeg4 video

Code is added in version 0.10-0.

v0lt
14th October 2010, 16:26
patch for support little-endian "in24", "in32", "fl32", "fl64" in the mov files.
Method 1:
need MPC-HC 2686 и newer.
...\src\includes\moreuuids.h
struct WAVEFORMATEX_HDMV_LPCM : public WAVEFORMATEX
{
BYTE channel_conf;

struct WAVEFORMATEX_HDMV_LPCM()
{
memset(this, 0, sizeof(*this));
cbSize = sizeof(WAVEFORMATEX_HDMV_LPCM) - sizeof(WAVEFORMATEX);
}
};

+// Reverse GUIDs for little-endian 'in24', 'in32', 'fl32', 'fl64'
+// 696E3234-0000-0010-8000-00AA00389B71 (little-endian int24, reverse 'in24')
+DEFINE_GUID(MEDIASUBTYPE_PCM_IN24_le,
+ 0x696E3234, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+// 696E3332-0000-0010-8000-00AA00389B71 (little-endian int32, reverse 'in32')
+DEFINE_GUID(MEDIASUBTYPE_PCM_IN32_le,
+ 0x696E3332, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+// 666C3332-0000-0010-8000-00AA00389B71 (little-endian float32, reverse 'fl32')
+DEFINE_GUID(MEDIASUBTYPE_PCM_FL32_le,
+ 0x666C3332, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+// 666C3634-0000-0010-8000-00AA00389B71 (little-endian float64, reverse 'fl64')
+DEFINE_GUID(MEDIASUBTYPE_PCM_FL64_le,
+ 0x666C3634, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);

----------------------------------
...\src\Demuxers\LAVFAudioHelper.cpp
case CODEC_ID_PCM_DVD:
mediaType.subtype = MEDIASUBTYPE_DVD_LPCM_AUDIO;
break;
+//support for little-endian 'in24', 'in32', 'fl32', 'fl64'
+ case CODEC_ID_PCM_S24LE:
+ if (codecTag == MKTAG('i', 'n', '2', '4'))
+ mediaType.subtype = MEDIASUBTYPE_PCM_IN24_le;
+ break;
+ case CODEC_ID_PCM_S32LE:
+ if (codecTag == MKTAG('i', 'n', '3', '2'))
+ mediaType.subtype = MEDIASUBTYPE_PCM_IN32_le;
+ break;
+ case CODEC_ID_PCM_F32LE:
+ if (codecTag == MKTAG('f', 'l', '3', '2'))
+ mediaType.subtype = MEDIASUBTYPE_PCM_FL32_le;
+ break;
+ case CODEC_ID_PCM_F64LE:
+ if (codecTag == MKTAG('f', 'l', '6', '4'))
+ mediaType.subtype = MEDIASUBTYPE_PCM_FL64_le;
+ break;
}
return mediaType;
}

v0lt
14th October 2010, 18:42
Method 2:
removed
non-working code

nevcairiel
14th October 2010, 18:47
I prefer the second method, it doesn't require a special decoder to handle the subtype.

I'll apply all of those "soon", been busy with other projects (that pay money, ha!)

v0lt
14th October 2010, 20:22
The second method works only with AC3Filter.
Probably will work through ffdshow. But there I do not like it RAW-decoder.
Built-in windows PCM-decoder does not work. Why is unclear.

IMHO, it is necessary to convert big-endian to little-endian in the splitter. But I do not know where yet.

ikarad
16th October 2010, 11:28
I prefer the second method, it doesn't require a special decoder to handle the subtype.

I'll apply all of those "soon", been busy with other projects (that pay money, ha!)

Nevcairiel you are assigned to this bug in mpc-hc
https://sourceforge.net/apps/trac/mpc-hc/ticket/48#comment:14

MPC-HTPC told me that your lavssplitter take care of this bug.
Hi ikarad,

IMHO nevcairiel was put as owner of the ticket you opened on the trac because he is working on a new spillter (LAVFSplitter (http://forum.doom9.org/showthread.php?t=156191)), which should be integrated into MPC-HC once it is finished (but according to nevcairiel don't expect anything this year). Anyhow, this is the reason why all splitter related issues on the trac were assigned to nevcairiel. So maybe when LAVFSplitter will be integrated into MPC-HC your problem is solved, but until then you either have to be patient or just install the current beta builds of LAVFSplitter.
Is-it true? and is-it corrected with beta version of your software?

nevcairiel
19th October 2010, 07:06
Well. How are the subs represented in the file? Is there 2 streams that should both be active? Or is it one subtitle stream?

If its one stream, the sub renderer is to be blamed, not the splitter. If its two streams, i guess we need to figure out a way to allow people to activate multiple subtitles.

ikarad
19th October 2010, 16:48
Well. How are the subs represented in the file? Is there 2 streams that should both be active? Or is it one subtitle stream?

If its one stream, the sub renderer is to be blamed, not the splitter. If its two streams, i guess we need to figure out a way to allow people to activate multiple subtitles.

there is 2 differents subs that should both be active in the same time but I don't know what means 2 streams.

It's doesn't worked with mpc-hc since the start of support of pgs subs in mpc-hc. Although it works with news sub renderer in ffdshow.

I give you the example with update link

http://www.zshare.net/info.html?81452501-e2bfc0923908879619cc19b5006bf196
http://www.zshare.net/info.html?81501504-69cd3f161fc197a467a33062183f6750

http://www.zshare.net/info.html?81536706-5cae5e2b0cbc4d364139310e81b24090
http://www.zshare.net/info.html?81536007-e6c9b354543a456359e20397bc82f70f
http://www.zshare.net/info.html?81536710-f29b5944c344d5b9e6d78ef54b362352
http://www.zshare.net/info.html?81539836-94a081fa954f746aa42ebcfa7fc240a6
http://www.zshare.net/info.html?81537337-da6f5db4d02f020ea1087416a0100bad

whurlston
23rd October 2010, 06:52
Can someone share the compiled .dll and .lib files for the ffmpeg fork? For some reason I keep getting a "Cannot find [pathto]/[somefile].h" error when I try to compile it even though the file exists in the path given in the error.

v0lt
25th October 2010, 16:10
@whurlston
ffmpeg_libs_for_LAVFSplitter.7z (http://www.mediafire.com/?wgy915qg57jg76v)

whurlston
26th October 2010, 01:14
Much appreciated. Thanks.

nevcairiel
26th October 2010, 18:24
LAVFSplitter 0.10
- Added more MOV/MP4 byte markers
- Added support for multichannel PCM tracks
- Added support for DVD LPCM tracks
- Added support for usign the ArcSoft HD decoder for DTS and TrueHD tracks
- Send the proper media type for TrueHD instead of trying to connect with AC-3
- Improved H264 frame rate detection
- Improved FLAC support
- Fix loading of files with unicode characters in their names
- Fixed timestamping issues that caused certain videos to play too fast
- Fixed M-JPEG media type
- Fixed corruption with MPEG-4 ASP (DivX/Xvid) when using the Xvid decoder

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.10.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.10-x64.zip)

Its been quite a while, and most of those fixes have been in the repository for a long time, so i wanted to get it out before it starts to go bad!

In any case, i hope to have some more time again soon, and can work on new features.

v0lt
26th October 2010, 18:57
LAVFSplitter 0.10
- Added more MOV/MP4 byte markers
...
Thank you!

SamuriHL
26th October 2010, 19:33
Wonderful! I'm gonna give this a try as soon as I can fit it onto my plate.

Sebastiii
26th October 2010, 19:53
Thank you too :)

Kurtnoise
26th October 2010, 20:31
Hi,

The Solveig Matroska muxer requires another subtype for EAC3 streams...If you're interested w/ the discussion, look at this post (http://forum.doom9.org/showthread.php?p=1449681#post1449681). Here is a patch (http://pastie.org/1250869) I used.


Anyway, thanks for your work. :)

n3w813
26th October 2010, 22:41
LAVFSplitter 0.10
- Added more MOV/MP4 byte markers
- Added support for multichannel PCM tracks
- Added support for DVD LPCM tracks
- Added support for usign the ArcSoft HD decoder for DTS and TrueHD tracks
- Send the proper media type for TrueHD instead of trying to connect with AC-3
- Improved H264 frame rate detection
- Improved FLAC support
- Fix loading of files with unicode characters in their names
- Fixed timestamping issues that caused certain videos to play too fast
- Fixed M-JPEG media type
- Fixed corruption with MPEG-4 ASP (DivX/Xvid) when using the Xvid decoder

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.10.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.10-x64.zip)

Its been quite a while, and most of those fixes have been in the repository for a long time, so i wanted to get it out before it starts to go bad!

In any case, i hope to have some more time again soon, and can work on new features.

This is GREAT!!!

LAVSplitter + Arcsoft HD Decoder + Reclock WASPI = undownsampled THD/DTS-HD/LPCM decoding to PCM :D

THANKS!!!!

nevcairiel
27th October 2010, 07:05
Hi,

The Solveig Matroska muxer requires another subtype for EAC3 streams...If you're interested w/ the discussion, look at this post (http://forum.doom9.org/showthread.php?p=1449681#post1449681). Here is a patch (http://pastie.org/1250869) I used.


Anyway, thanks for your work. :)

Yeah, i know that most other (de)muxers just use the AC3 subtype for EAC3. The EAC3 subtype seems to be a "custom" subtype shared by MPC-HC and ffdshow, doesn't seem to be a standard subtype defined my MS.

I do wonder however, if there are decoders that understand AC3, but not EAC3, where this would cause problems.

Matching_Mole
27th October 2010, 07:39
This is GREAT!!!

LAVSplitter + Arcsoft HD Decoder + Reclock WASPI = undownsampled THD/DTS-HD/LPCM decoding to PCM :D

THANKS!!!!

Wich version of Arcsoft HD decoder do you use because for myself the version that I tested in the past down sampled THD and DTS-HD.

nevcairiel
27th October 2010, 10:17
I actually didn't have any THD or DTS-HD with more then 48000Hz to test, but i did at least get full 24-bit and 7.1 channels in my tests. Using the latest decoder from TMT3.185

Gser
27th October 2010, 10:57
It does just show plain DTS as the media type but I guess that's normal for DTS-HD? ps. thx for fixing TrueHD.

nevcairiel
27th October 2010, 11:08
Yes, thats normal.

bjd
27th October 2010, 20:31
Unmolested 24bit DTSHD/True HD was available on TMT 2.x.121-> 2.x.126 before being downgraded to 16bit in TMT 2.x.128.

All subsequent versions only pumped out 16bit up until 3.x.185 which when registered in direct show using shard's custom checkactivate.dll method outputs 24bit.

On another point, I am not entirely sure the TMT 2.x.121-> 2.x.126 audiohd filter recognises media type {00002001-0000-0010-8000-00AA00389B71}, but someone else will confirm this as I have 3.x.185 now on my system.

Anyway what I will say is hats off to the people behind this splitter as it is a significant improvement on any others out there especially given the nifty codec re-negotiation when an audio stream is changed as this means we don't have to rely on one audio codec to decode all BD audio streams and can use the most suitable one for each audio stream. It has also stopped me having to mess about hacking media codes to get the Arcsoft codec to work with MPC-HC -excellent work guys.

whurlston
27th October 2010, 21:44
This is GREAT!!!

LAVSplitter + Arcsoft HD Decoder + Reclock WASPI = undownsampled THD/DTS-HD/LPCM decoding to PCM :D

THANKS!!!!

LPCM works for you with the ArcSoft HD decoder? It doesn't connect for me. I've modified the LAVS source to get it to connect but I don't get audio. Still working on that.

BatKnight
28th October 2010, 17:14
nevcairiel,

I uninstalled 0.9 and then overwrited the files with 0.10 and then run the install.bat to register the 0.10 files. (This is the same procedure I've done with all your past versions)

The thing is, with 0.10 when I open a MKV file with H264 content the video doesn't start playing. I have to click on the seek bar for MPC-HC to start playing the movie.

This doesn't not happen on MKV with VC-1 content, neither it happens on AVI with xvid.
And this also doesn't happen if I go back to 0.9.

I am using the latest ffdshow and the latest MPC-HC. This happens with and without Reclock. And FYI I am using ffdshow to decode the x264 content and ffdshow to decode the audio, too. This happens on EVR Custom and EVR Sync.

Could it be a regression on 0.10? Because you state on the changelog that you improved H264 frame rate detection and could this have messed up something?

Bat

nevcairiel
28th October 2010, 17:22
I dont think that change caused it. Its only supposed to change 23.976 movies that mistakenly got detected as 24.000
I can however not reproduce it. I've been using that version for quite a while already on my HTPC, and everything worked fine so far =(

Does it happen on all MKVs with H264? Or just some?
Does it happen with other containers? H264 in MPEG-TS?
Can you maybe cook up a small sample that has the problem for you?

v0lt
28th October 2010, 17:37
@nevcairiel

patch for support 'sowt' and little-endian "in24", "in32", "fl32", "fl64" in the mov files.
(also fixed a problem with the PCM-audio in MKV)
Method 2 "remake":
...\src\Demuxers\LAVFAudioHelper.cpp
...
CMediaType CLAVFAudioHelper::initAudioType(CodecID codecId, unsigned int &codecTag)
{
...
case CODEC_ID_PCM_DVD:
mediaType.subtype = MEDIASUBTYPE_DVD_LPCM_AUDIO;
break;
+ // support for little-endian int: 'sowt', 'in24', 'in32'
+ case CODEC_ID_PCM_S16LE:
+ case CODEC_ID_PCM_S24LE:
+ case CODEC_ID_PCM_S32LE:
+ if (codecTag == MKTAG('s', 'o', 'w', 't') ||
+ codecTag == MKTAG('i', 'n', '2', '4') ||
+ codecTag == MKTAG('i', 'n', '3', '2')) {
+ codecTag = WAVE_FORMAT_PCM;
+ mediaType.subtype = MEDIASUBTYPE_PCM;
+ }
+ break;
+ // support for little-endian float: 'fl32', 'fl64'
+ // PCMfloat64 does not work, may be not supported by system.
+ case CODEC_ID_PCM_F32LE:
+ case CODEC_ID_PCM_F64LE:
+ if (codecTag == MKTAG('f', 'l', '3', '2') ||
+ codecTag == MKTAG('f', 'l', '6', '4')) {
+ codecTag = WAVE_FORMAT_IEEE_FLOAT;
+ mediaType.subtype = MEDIASUBTYPE_IEEE_FLOAT;
+ }
+ break;
}
return mediaType;
}

WAVEFORMATEX *CLAVFAudioHelper::CreateWVFMTEX(const AVStream *avstream, ULONG *size) {
...
wvfmt->nBlockAlign = (WORD)((wvfmt->nChannels * wvfmt->wBitsPerSample) / 8);
}
}

+ //fix the error when nAvgBytesPerSec = 0 for WAVE_FORMAT_PCM and WAVE_FORMAT_IEEE_FLOAT
+ if (wvfmt->nAvgBytesPerSec==0 && (wvfmt->wFormatTag==WAVE_FORMAT_PCM || wvfmt->wFormatTag==WAVE_FORMAT_IEEE_FLOAT))
+ wvfmt->nAvgBytesPerSec = wvfmt->nSamplesPerSec * wvfmt->nBlockAlign;

if (avstream->codec->extradata_size > 0) {
wvfmt->cbSize = avstream->codec->extradata_size;
memcpy((BYTE *)wvfmt + sizeof(WAVEFORMATEX), avstream->codec->extradata, avstream->codec->extradata_size);
}
...

test build (http://www.mediafire.com/?enccycznnksltl3) with this patch

BatKnight
28th October 2010, 21:49
I dont think that change caused it. Its only supposed to change 23.976 movies that mistakenly got detected as 24.000
I can however not reproduce it. I've been using that version for quite a while already on my HTPC, and everything worked fine so far =(

Does it happen on all MKVs with H264? Or just some?
Does it happen with other containers? H264 in MPEG-TS?
Can you maybe cook up a small sample that has the problem for you?
M2TS and TS seem to always work fine. AVI also works.
The problem is with MKV. And not only with x264, I have at least one with VC-1 that doesn't work, and other that do, on MKV.

One thing that might help you is that, when I open the movie, MPC-HC starts but the timer is stopped at 00:00:00 and doesn't play the movie. AND, I've noticed that mpc-hc.exe is using 100% of CPU and the Memory used is rising, and rising, and rising. I guess you have a memory leak somewhere, because I've just tested all these faulty videos with 0.9 and all work fine.

Nuno

PS: I tried to cut a sample, but all the samples I've done are not faulty, and work fine. I guess mkvmerge does something that bypasses your memory leak. I could provide you a log or something. Just let me know how to generate one that contains the info you need.

nevcairiel
29th October 2010, 07:06
Guess i'll have to test my movie library for possible failures. I've yet to find one =/

One thing you can try though, use the .ax from 0.10, and the av* dlls from 0.9, and see if it makes any difference. Maybe its a problem with the updated ffmpeg, who knows. (I hope that works, and ffmpeg didn't change their ABI)

There are only maybe 2 potential changes i would pin this problem on, everything else is just media type changes..
If i cannot reproduce it on my end, i'll prepare a bunch of test builds later.

BatKnight
29th October 2010, 14:41
Guess i'll have to test my movie library for possible failures. I've yet to find one =/

One thing you can try though, use the .ax from 0.10, and the av* dlls from 0.9, and see if it makes any difference. Maybe its a problem with the updated ffmpeg, who knows. (I hope that works, and ffmpeg didn't change their ABI)

There are only maybe 2 potential changes i would pin this problem on, everything else is just media type changes..
If i cannot reproduce it on my end, i'll prepare a bunch of test builds later.
OK, I am committed to help you on this. I will test your suggestions later in the evening and let you know the results.

One other thing. Are you able to implement on your splitter something that allows scene selecting, like for movies with alternate endings on the MKV (ordered chapters, I guess)?

Nuno

nevcairiel
29th October 2010, 14:42
Its planned to be implemented, but its a rather complicated feature. =/

v0lt
29th October 2010, 18:05
nevcairiel
What is the name of a function that works with audio data (buffer, blocks)?

nevcairiel
29th October 2010, 19:54
I honestly have no idea what you're asking.

v0lt
29th October 2010, 20:31
I want to change the audio before sending the decoder. Where can I do this in code?
Understand?

BatKnight
29th October 2010, 22:33
Guess i'll have to test my movie library for possible failures. I've yet to find one =/

One thing you can try though, use the .ax from 0.10, and the av* dlls from 0.9, and see if it makes any difference. Maybe its a problem with the updated ffmpeg, who knows. (I hope that works, and ffmpeg didn't change their ABI)

There are only maybe 2 potential changes i would pin this problem on, everything else is just media type changes..
If i cannot reproduce it on my end, i'll prepare a bunch of test builds later.
So here's the result:

0.9 DLLs + 0.10 ax = MPC-HC crashes
0.10 DLLs + 0.9 ax = MPC-HC crashes

0.9 DLLs + 0.9 ax = MPC-HC always starts playing.
0.10 DLLs + 0.10 ax = MPC-HC leaks memory and CPU is 100% on the mpc-hc.exe process, and only plays if I click on the seek bar

Is there some kind of a log I can generate? Like a debug mode or something?

Nuno

nevcairiel
29th October 2010, 23:37
I figured the old dlls might crash, too bad.

I prepared two test builds, the first is plain 0.10 with the old ffmpeg, without crashing.
The second has one change reverted that in my opinion is the only change since 0.9 that could've caused this, at all.

First: http://files.1f0.de/lavf/LAVFSplitter-0.10-test-oldffmpeg.zip
Second: http://files.1f0.de/lavf/LAVFSplitter-0.10-test-2.zip

The bad thing is, if the second fixes it, then i really need a file that causes the problem to reproduce it. I've tested a whole load of my mkvs, and all play fine =/
If neither of these help, i'll add some debug logging. I currently don't have any debug file generation setup, it only outputs into a debugger...

zicoz
1st November 2010, 13:33
I don't seem to get any subtitles using LAVFSplitter, is this not implemented uet? I'm using Mediaportal and it's subtitle engine is based on MPC-HCs if I'm not mistaken.

BatKnight
2nd November 2010, 16:03
I figured the old dlls might crash, too bad.

I prepared two test builds, the first is plain 0.10 with the old ffmpeg, without crashing.
The second has one change reverted that in my opinion is the only change since 0.9 that could've caused this, at all.

First: http://files.1f0.de/lavf/LAVFSplitter-0.10-test-oldffmpeg.zip
Second: http://files.1f0.de/lavf/LAVFSplitter-0.10-test-2.zip

The bad thing is, if the second fixes it, then i really need a file that causes the problem to reproduce it. I've tested a whole load of my mkvs, and all play fine =/
If neither of these help, i'll add some debug logging. I currently don't have any debug file generation setup, it only outputs into a debugger...
The first one doesn't work. Memory leak and my QuadCore show 25% CPU on MPC-HC.
The second one works! LAVFSplitter-0.10-test-2.zip plays fine, like 0.9

But it's not only bad news. I've found what's causing the problem.
This problem only happens with movies with AC3 tracks and only when using ffdshow audio decoder with jitter correction disabled.

I had to test multiple combinations and found out that only happened when ffdshow audio decoder was being used. I then uninstalled it and reverted it to defaults and it worked. So it had to be the configuration I was using, and after a few checks I nailed it down to the jitter correction.
If it's enabled (ffdshow's default is enabled) then it works. If it's disabled then it does what I reported.

I don't know if this helps you, but please test a few MKV movies with AC3 and with ffdshow's jitter correction disabled, to see if you can reproduce it.

nevcairiel
2nd November 2010, 16:08
Thanks, i'll turn jitter correction off, and see what happens. Hopefully i can reproduce it, then i can fix it :)

Thanks for helping to track this down!

nevcairiel
2nd November 2010, 16:19
On second thought, maybe report this to ffdshow as well, might as well be a bug in their code that i just exposed, considering it works with the option on and with other filters..

I'll look at it still, however.

v0lt
2nd November 2010, 16:44
nevcairiel, you roll back the code? (0.10-6 -> 0.10-3)

nevcairiel
2nd November 2010, 16:55
I moved it into a branch because its not ready for use yet.

(I know, i know, bad things happen when you change history in your git repository, but i reserve that right on my own repo)

nevcairiel
2nd November 2010, 18:19
Good news everyone!

ffmpeg added support for AAC LATM, and i went ahead and fixed it in LAVFSplitter right away.
I don't think ffdshow can play it yet, but i do get proper sound with the MONOGRAM AAC Decoder.

This makes this the only splitter that can play AAC LATM in MPEG-TS, as far as i know, anyway.

v0lt
2nd November 2010, 18:37
Everything is fine. I was not able to compile those versions. :)

nevcairiel
2nd November 2010, 18:44
I don't know if this helps you, but please test a few MKV movies with AC3 and with ffdshow's jitter correction disabled, to see if you can reproduce it.

So, this worked.
I could reproduce the issue perfectly.

I also encountered some other issues, like, with jitter correction off, i dont get audio from some AAC tracks.

Is there any reason you have this off anyway? =)

The memory leak is obviously in ffdshow somewhere, but i'll go and see if i can make it play nice again from my side now.

nevcairiel
2nd November 2010, 20:12
So i tried fixing this.
I didn't find any way to do this, that wouldn't break other files again. The change that originally broke this was a rather significant bug fix. :/
This is one of the drawbacks trying to be a multi-format splitter, every format has its quirks, and i guess this might be one of those cases. (Or its just a bug in ffdshow)

I would suggest bringing this up with ffdshow, maybe they can fix it. Or just turning on the option =)
The fact that it only breaks with ffdshow, and only when that option is turned off, does make me think that its something on their side.
In addition, you're like the only one reporting the problem, so i figure, not many people turn off the option.

I'll keep looking into it for a while, maybe i'll come up with a brilliant solution, but i really strongly suggest to talk to a ffdshow developer, or get one to contact me that is willing to fix this.

Ger
2nd November 2010, 20:23
Good news everyone!

ffmpeg added support for AAC LATM, and i went ahead and fixed it in LAVFSplitter right away.
I don't think ffdshow can play it yet, but i do get proper sound with the MONOGRAM AAC Decoder.

This makes this the only splitter that can play AAC LATM in MPEG-TS, as far as i know, anyway.

Great news. :thanks:

Sebastiii
6th November 2010, 08:16
Thanks Nevcairiel for all work you do :)

nevcairiel
6th November 2010, 21:23
LAVFSplitter 0.11
- Smart stream pre-selection based on language, flags and quality
- Properties page for configuration (languages, stream selection logic)
- Added support for AAC LATM (single stream)
- Changed the "No Subtitles" pin to a more "friendly" Media Type
- Fixed a crash with certain AAC tracks

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.11.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.11-x64.zip)

Like mentioned earlier, i only got AAC LATM to work with the MONOGRAM AAC Decoder. If you know for a fact that another decoder out there supports AAC LATM, and LAVFSplitter does not work with it, please say so.

Stream selection!
Its finally finished. First, you will need to re-register the splitter for the properties page to show up, or you will not be able to configure it.

Some implementation details.
First, check language codes.
If none or more then one matched, check the "default" flag.
If no "default" flag is found, pick the stream with the highest quality (quality for audio is only based on number of channels and codec. More channels = more good; losless formats (TrueHD, flac, PCM) > DTS > AC3/AAC > *)

Subtitles have no quality check, they do however have some extra logic for forced streams in there. According to the MKV spec, forced streams should always play, so i might add an option later to create a always-on pin for those, instead of putting them on the normal subtitle pin.

Note that the default and forced flags are not really set in many containers, in fact, i only know that MKV has them, not sure about any others.
Anyway, i'm sure the logic might need tweaking on some edges, so please report your expierence!

PS:
The problem with some files not starting to play and eating up memory is still there. We were able to pin point the issue to AC3 audio tracks, in conjunction with ffdshow, but only when the Jitter Correction option in ffdshow was off (default is on). So if some files are not starting for you, turn that option in ffdshow on!

Jeffster
7th November 2010, 06:29
Hi Nevcairiel,

First thanks for releasing a new version so quickly with AAC LATM audio support.

I tried playing some .ts capture files in MPC-HC and they worked OK, including the audio (using the monogram AAC decoder), which is a first! :)

It's not all good news though. I noticed while checking which filters were being used and the filter properties, in the Pin Info for the video decoder it said 50 fps (should be 25 fps). I thought that was odd but didn't think much more of it initially because the file played normally and checking the ffdshow properties while playing it said Movie FPS: 25.000.

But when I opened the .ts file via AviSynth using DirectShowSource and looked at the File Info it said 50 fps and the video portion played at twice normal speed. :confused:

Anyway I suspect the LATM/HE-AAC audio may somehow be the reason for the movie fps confusion because if I demux the .ts file and remux the video (H264) with a "regular" AAC file or an MP3 instead then the video fps is reported correctly as 25 fps.

v0lt
7th November 2010, 08:40
LAVFSplitter 0.11 crashes on some matroska files.
sample (http://www.mediafire.com/?g3rh19m32g8gy9d)

nevcairiel
7th November 2010, 09:56
LAVFSplitter 0.11 crashes on some matroska files.
sample (http://www.mediafire.com/?g3rh19m32g8gy9d)

No it doesn't. Works fine here.

The file comes with AAC audio. There was a crash in there before. Completly recompile your ffmpeg, if you're using a custom build, or use my build.
Unless its the same issue as detailed at the end of the post with no configured languages.

But when I opened the .ts file via AviSynth using DirectShowSource and looked at the File Info it said 50 fps and the video portion played at twice normal speed. :confused:

I actually saw that with one of my samples as well. I didn't try in AviSynth though, so i didn't see it breaking.
Initially i suspected it was because the file was interlaced (50fps interlaced, gives 25 fps progressive), i'll investigate some.


I was also notified about a crash which happens when you do not configure any languages, and open a file with subtitles.
I fixed this internally, but until i push out a new version later today, hopefully, just set a language. ;)

v0lt
7th November 2010, 10:47
Completly recompile your ffmpeg, if you're using a custom build, or use my build.

I used your library from the LAVFSplitter-0.11.zip

MPC-HC 1.4.2714.0 (MSVC 2008 SP1), Win7 x86.

nevcairiel
7th November 2010, 10:49
I guess then it is the subtitle thing i talked about. Configure some languages and turn on "only matching", or set subtitle mode to "No Subtitles" temporarily. I'll release a new version soon.

v0lt
7th November 2010, 11:03
Yes, the problem is due to the subtitles.

Jeffster
7th November 2010, 14:16
I actually saw that with one of my samples as well. I didn't try in AviSynth though, so i didn't see it breaking.
Initially i suspected it was because the file was interlaced (50fps interlaced, gives 25 fps progressive), i'll investigate some.

Thanks, they're just regular 25 fps interlaced... I know what you mean though, a couple of stations used to broadcast in 720p @ 50 fps but they don't any more.

It seems I spoke too soon unfortunately. I've had a chance to test some more .ts files now and found that some of them can't connect to an audio filter. :(

The only difference I can see is the files that work are all SD files (576i) and the files that don't work are HD files (1080i) but I can't imagine why that would make a difference. Here's a sample (http://www.mediafire.com/?clidyaj82u48jar) of one that doesn't work if you want to try it.

Ger
7th November 2010, 21:00
More LATM feedback:

My recordings from Norwegian DVB-T play fine with LAVFSplitter 0.11 and Monogram AAC decoder. Both SD and HD samples tested (only stereo so far).

However, the 5.1 track in this sample from Danish DVB-T (http://install.team-mediaportal.com/ts/The_Gift_-_DR_HD_-_2009-12-23.ts) has a lot of noise. The stereo track in the same sample sounds OK though. I use "Mix to stereo" in the Monogram settings.

The stereo and 5.1 tracks both sound fine in DVBViewer + Monogram AAC decoder (same mix to stereo setting).

BelowSky
8th November 2010, 07:13
Please nevcairiel, use InnoSetup with your files. It will makes end users' life a whole lot easier.
xhmikosr has it, but he is not always up-to-date.
http://xhmikosr.1f0.de/index.php

Thank you.

nevcairiel
8th November 2010, 08:10
Unzipping and hitting install.bat is so complicated? Really? :)

hoborg
8th November 2010, 09:13
Some 0.11 issues: (tested in Graphstudio using FFDShow)

This sample (http://hobring.esero.net/saf/lavf/bugs0.11/video(crash).zip) will crash Graphstudio (not sure if extension should be .avi or .divx)

This FLAC sample (http://hobring.esero.net/saf/lavf/bugs0.11/flac.zip) wont play - graph is created correctly, but playback wont start

This FLV sample (http://hobring.esero.net/saf/lavf/bugs0.11/flv.wrongspeed.flv) is playing at wrong speed

This MPG sample (http://hobring.esero.net/saf/lavf/bugs0.11/mpg.coruption.mpg) have coruptions on begining
This MPG sample (http://hobring.esero.net/saf/lavf/bugs0.11/mpg.mpeg-1-not_working.mpg) wont play (gray screen)

andyvt
8th November 2010, 15:56
Unzipping and hitting install.bat is so complicated? Really? :)

Getting the correct VC++ runtime installed can be complicated over the life of a project as different versions get released. If you use a setup project in VS, the additional effort is minimal and it can package the right runtime in the MSI and register the filter.

BelowSky
8th November 2010, 17:06
Unzipping and hitting install.bat is so complicated? Really? :)

Yes it is :)
Delete LAVFSplitter old folder.
Open new LAVFSplitter.zip with Winzip.
Extract and then go the extracted folder.
Run install.bat.......ERROR....... What?
Search the internet for that error, ReadMe.... etc
OK, I get it, I need to run it privileged mode.
Oh, another error... What now?
Again, search the internet for that error, ReadMe.... etc
OK, it needs VC++v10 runtimes. Do I have them installed?
Check Add/Remove manager... No nothing like that in there.
Search the Internet for that runtime.

Compare that with InnoSetup:
LAVFSplitterSetup -> Next -> Next -> Done.

which translates to:
Autorun in privileged mode -> auto download and install VC++v10 runtimes when not there -> Just update LAVFSplitter if it already installed. -> Done

nevcairiel
8th November 2010, 17:30
This MPG sample (http://hobring.esero.net/saf/lavf/bugs0.11/mpg.coruption.mpg) have coruptions on begining
This MPG sample (http://hobring.esero.net/saf/lavf/bugs0.11/mpg.mpeg-1-not_working.mpg) wont play (gray screen)

The issue only seems to happen with ffdshow in libavcodec mode for MPEG1/2. Switch it to libmpeg2 or use the MPC-HC internal filters, and it works flawlessly.

I'll try to fix it anyway.

hoborg
8th November 2010, 17:58
The issue only seems to happen with ffdshow in libavcodec mode for MPEG1/2. Switch it to libmpeg2 or use the MPC-HC internal filters, and it works flawlessly.

I'll try to fix it anyway.

You are right, thanks.

EDIT:

If i try to seek with libmpeg2, MPC-HC/Graphstudio will crash/freeze :/
Libavcodec are working fine, no freeze durning seek.

v0lt
8th November 2010, 18:31
mpg.coruption.mpg
ffdshow-libavcodec - corruptions on begining
ffdshow-libmpeg2 - crash while seeking
mpc-hc MPEG-2 Video, Microsoft DTV-DVD Video Decoder (system) - no problem

mpg.mpeg-1-not_working.mpg
ffdshow-libavcodec - gray screen
ffdshow-libmpeg2 - crash while seeking
mpc-hc MPEG-1 Video, MPEG 1 Video Decoder (system) - no problem

nevcairiel
8th November 2010, 18:37
Yeah, there is that crash bug in ffdshow libmpeg2 .. blame them, its their fault afterall! :)

I'll try to fix the libavcodec mode.

v0lt
8th November 2010, 19:13
But the MPC-decoder (rev. 2719) does not have this problem. And it also built from libmpeg2. Besides, with the MPC-splitter also no problem.

Sk08er_Boi_(sample).m2v (http://www.mediafire.com/?p5lncin81osvwkt)
LAVFSplitter
ffdshow-libavcodec - corruptions
ffdshow-libmpeg2 - crash while seeking
mpc-hc MPEG-2 Video, Microsoft DTV-DVD Video Decoder (system) - no problem

MPC - Mpeg Splitter (Gabest)
ffdshow-libavcodec - corruptions
ffdshow-libmpeg2 - no problem
mpc-hc MPEG-2 Video, Microsoft DTV-DVD Video Decoder (system) - no problem

v0lt
8th November 2010, 19:31
LAVFSplitter does not work in GraphStudio with mkv and mov (mp4). With mpg no problem. Bug?

starla
8th November 2010, 20:08
This makes this the only splitter that can play AAC LATM in MPEG-TS, as far as i know, anyway.

Almost the 1st one. MediaPortal's TsReader has had that supported for quite long time :) I guess same appliest to DVBViever's TS source filter. DVB applications need that since there are already many broadcasters using that audio format.

Ger
8th November 2010, 22:18
Even if it technically is a DS filter, I don't think DVB Source can be used outside DVBViewer though. At least it didn't work in MPC-HC last time I tried it (set as a preferred external filter).

I know you're a.k.a. Tourettes (MP developer). Does TSReader work with MPC-HC? Do you have a link to a standalone TSReader filter?

hoborg
9th November 2010, 10:37
nevcairiel,v0lt:

I have something for you:
This MOV sample (http://hobring.esero.net/saf/lavf/bugs0.11/mov.sample.zip) wont connect to FFDshow audio decoder.
It is working fine if MPC MP4 splitter is in use.

LAVF splitter output audio as: (wont connect to FFDshow audio decoder)
subtype: Unknown GUID Name {1100736D-0000-0010-8000-00AA00389B71}

MPC MP4 splitter: (working)
subtype: Unknown GUID Name {00000011-0000-0010-8000-00AA00389B71}

nevcairiel
9th November 2010, 13:35
Stupid MOV and their collection of weird PCM variations.

starla
9th November 2010, 16:05
I know you're a.k.a. Tourettes (MP developer). Does TSReader work with MPC-HC? Do you have a link to a standalone TSReader filter?

Partly I would assume, but there are TsReader specific interfaces that MPC-HC doesn't have a clue so I doubt it works that well (it is mainly developed for live tv support in mind - it has special requirements when compared to normal "file" based playback).

Anyway, this is already off topic and should be discussed some other place (or at least in a separate thread).

Virtual_ManPL
10th November 2010, 20:00
@ nevcairiel - please reopen this bugs, because they are not fixed completely
https://github.com/Nevcairiel/LAVFSplitter/issues/closed#issue/20
https://github.com/Nevcairiel/LAVFSplitter/issues/closed#issue/26

nevcairiel
10th November 2010, 20:05
Oh but they are.
The TS file plays perfectly for me, and the fix for the other file is not supposed to enable subtitles by default, its supposed to allow you to configure what to do.

Virtual_ManPL
10th November 2010, 20:30
Odd...
In my configuration with standalone MPC-HC and LAVFSplitter, player shows error like I posted on bug tracer about bug #26

And bug #20 now is not fixed, because I'm talking about enabling subtitles from fresh start (like in MPC-HC or Haali) without settings any prioritizes in language settings, now in some files subtitles are enabled, in some are not like I posted sauce on bugtracker ;p

nevcairiel
10th November 2010, 20:32
Set it to full subtitles, and disable "only matching languages" or how i named the checkbox, and it should always activate some subtitle.

If not, then thats a new bug.

For #26, you didnt post any error, just a file and a media type info.

Virtual_ManPL
10th November 2010, 20:51
Ahhh, yes #20 is fixed, my settings was not saved in last time probably ;)

And about bug #26 I posted this error
http://img100.imageshack.us/img100/3810/mpchcy.png

oddball
14th November 2010, 23:12
First 10 meg of a bluray remux. Full MKV and this split test clip cause MPC-HC to crash with this splitter. Haali plays back fine (Except I get a crash on seek bug sometimes).

http://hotfile.com/dl/82598375/dc86f5c/test.mkv.html

zipi
16th November 2010, 05:44
Thanks for the great work, I have been reading through this thread & trying the versions, but still cant figure it out.

I am using Zoom Player (http://dl.zoomplayer.com/zp700max.exe) for years,
I have tried configuring the player to use LAVFSplitter as a source /splitter, to no avail.

In fact, This is the first time I ever used a source/splitter filter that doesnt work in Zoom Player :(

However manually building a graph in Graphedit does work.
Can anyone please give me a tip?
Am I missing something?
I am on XP pro.

adam777
16th November 2010, 09:11
Hello,
I've been using LAVF Splitter with MPC-HC for some time and am very happy with it.

The splitter will not load under MPC-HC for the following file, I'll try to upload a sample later.

General
Format : Matroska
File size : 7.32 GiB
Duration : 1h 37mn
Overall bit rate : 10.7 Mbps
Encoded date : UTC 2010-10-15 01:09:09
Writing application : mkvmerge v4.3.0 ('Escape from the Island') built on Sep 5 2010 10:30:51
Writing library : libebml v1.0.0 + libmatroska v1.0.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Format settings, GOP : M=1, N=36
Codec ID : V_MPEG4/ISO/AVC
Duration : 1h 37mn
Bit rate : 10 000 Kbps
Width : 1 920 pixels
Height : 816 pixels
Display aspect ratio : 2.35:1
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.266
Stream size : 6.69 GiB (91%)
Writing library : x264 core 105 r1732 2b04482
Encoding settings : cabac=1 / ref=5 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=tesa / subme=10 / psy=1 /
psy_rd=0.80:0.00 / mixed_ref=1 / me_range=64 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 /
fast_pskip=0 / chroma_qp_offset=-2 / threads=6 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 /
bframes=5 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=1 / weightp=2 / keyint=250 / keyint_min=23 /
scenecut=40 / intra_refresh=0 / rc=2pass / mbtree=0 / bitrate=10000 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 /
qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:0.60
Language : English

Audio #1
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : A_AC3
Duration : 1h 37mn
Bit rate mode : Constant
Bit rate : 640 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Stream size : 448 MiB (6%)
Language : English

Audio #2
ID : 3
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 1h 37mn
Bit rate : 64.0 Kbps
Channel(s) : 2 channels
Sampling rate : 48.0 KHz
Stream size : 44.8 MiB (1%)
Title : Filmmakers' Commentary
Writing library : libVorbis (Everywhere) (20100325 (Everywhere))
Language : English

Text #1
ID : 4
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : English

Text #2
ID : 5
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Arabic

Text #3
ID : 6
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Bulgarian

Text #4
ID : 7
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Chinese

Text #5
ID : 8
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Croatian

Text #6
ID : 9
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Czech

Text #7
ID : 10
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Danish

Text #8
ID : 11
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Dutch

Text #9
ID : 12
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : French

Text #10
ID : 13
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Greek

Text #11
ID : 14
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Hebrew

Text #12
ID : 15
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Indonesian

Text #13
ID : 16
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Korean

Text #14
ID : 17
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Persian

Text #15
ID : 18
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Polish

Text #16
ID : 19
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Portuguese

Text #17
ID : 20
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Romanian

Text #18
ID : 21
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Serbian

Text #19
ID : 22
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Slovenian

Text #20
ID : 23
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Spanish

Text #21
ID : 24
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Swedish

Text #22
ID : 25
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Language : Vietnamese

Text #23
ID : 26
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : Filmmakers' Commentary
Language : English

Text #24
ID : 27
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : Filmmakers' Commentary
Language : French

Text #25
ID : 28
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : Filmmakers' Commentary
Language : Portuguese

Text #26
ID : 29
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : Filmmakers' Commentary
Language : Spanish

Menu
00:00:00.000 : en:CHAPTER01
00:08:39.811 : en:CHAPTER02
00:11:31.983 : en:CHAPTER03
00:15:11.035 : en:CHAPTER04
00:21:57.107 : en:CHAPTER05
00:27:41.702 : en:CHAPTER06
00:33:14.201 : en:CHAPTER07
00:39:07.136 : en:CHAPTER08
00:43:28.731 : en:CHAPTER09
00:47:08.367 : en:CHAPTER10
00:49:47.193 : en:CHAPTER11
00:59:55.801 : en:CHAPTER12
01:04:47.383 : en:CHAPTER13
01:09:28.164 : en:CHAPTER14
01:12:38.187 : en:CHAPTER15
01:23:26.043 : en:CHAPTER16
01:28:54.496 : en:CHAPTER17

pankov
18th November 2010, 00:32
zipi,
I'm in the same situation.
LAVFSplitter won't work with ZoomPlayer. A few months ago there was a brief discussion between the authors of the two programs but they didn't reach to a solution.
I didn't understand what was the problem so I too will be glad if nevcairiel or someone else can explain why this is the only splitter that doesn't work with ZoomPlayer.
I'm not saying that the problem is in the splitter but obviously there is something different in it that prevents it from working in ZP.

nevcairiel
18th November 2010, 09:48
There was a discussion? I don't particularly remember it, oh well.
I have never used ZoomPlayer, so i have no insight in its operations, really.

jmone
18th November 2010, 10:54
Hi nevcairiel - nice splliter! FYI I've posted a guide a on how to use this with the Arcsoft TMT filter for DTS-HD (and other Blu-ray Audio decoding) in MKV's etc in JRivers Media Centre (http://yabb.jriver.com/interact/index.php?topic=55171.msg408875#msg408875). It works really well with the excpetion of files with subs in them. They either fail to load or need a seek to start playing but even then I don't see the subs.
Thanks
nathan

pankov
18th November 2010, 11:43
There was a discussion? I don't particularly remember it, oh well.
I have never used ZoomPlayer, so i have no insight in its operations, really.
nevcairiel, there are a couple of posts by Blight - the lead developer of ZoomPlayer in the first 5-6 pages of this thread.
I'm really begging you to take a look at ZoomPlayer - it's not free but has a trial period so you can test it. If you decide to do so, please, use the latest alpha/beta test version 7.10 Alpha 5.
The development is slow in the last months but we hope Blight will come back to active development soon but ZoomPlayer is still one of the most versatile DirectShow media players out there. I've been using it for almost 10 years now and I still haven't found anything that can come close to it's range of settings and options to tweak the media playback.
MPC-HC has it's strengths but it trails in many other features.
nevcairiel,
pretty please, give it a try.
:thanks: in advance

mindbomb
19th November 2010, 18:18
For me, when there is vc-1 in an mkv, I have to manually seek to a place in the video or else I won't get picture. I'm not using DXVA with mpc video decoder.
Is this a known bug?
here is a sample anyway:
http://www.mediafire.com/?qe4j6xfa4640fln

also, this mkv sample had jerky playback if you tried to play the sample with hd audio.
http://www.mediafire.com/?8b26kzn5cmu9wnj

this sample also had jerky playback, though the hd audio doesnt seem to be the problem in this one:
http://www.mediafire.com/?4a8qitkxzz1kg7f

in all cases, i used version .11 of lavfsplitter.

n3w813
22nd November 2010, 19:36
Thanks for the great work, I have been reading through this thread & trying the versions, but still cant figure it out.

I am using Zoom Player (http://dl.zoomplayer.com/zp700max.exe) for years,
I have tried configuring the player to use LAVFSplitter as a source /splitter, to no avail.

In fact, This is the first time I ever used a source/splitter filter that doesnt work in Zoom Player :(

However manually building a graph in Graphedit does work.
Can anyone please give me a tip?
Am I missing something?
I am on XP pro.

zipi,
I'm in the same situation.
LAVFSplitter won't work with ZoomPlayer. A few months ago there was a brief discussion between the authors of the two programs but they didn't reach to a solution.
I didn't understand what was the problem so I too will be glad if nevcairiel or someone else can explain why this is the only splitter that doesn't work with ZoomPlayer.
I'm not saying that the problem is in the splitter but obviously there is something different in it that prevents it from working in ZP.

What is the error message you guys are getting in ZP while trying to use LAVFSplitter? Enable "Show Smart Play graph creation errors (useful for debugging)" under Playback/Smart Play/Settings & Blacklist.

I'm using ZP 7.1 and LAVFSplitter is working fine for me.

pankov
24th November 2010, 23:04
n3w813,
how have you configured ZP?
Do you use LAVFSplitter as a source filter or as a splitter?
For which file type have you configured it?
I'm trying to make it work for .mkv but it doesn't work neither as a source filter (with "This filter is also a splitter" checked) nor as a splitter after the Standard File Source.
In the first case I get this error
Unable to Create the "lavf dshow source filter" Filter.

Error Code : 00000001 - The file %2 could not be processed by the application %1 because it requires Indeo® Decoders of type %3
and in the second one I get this warning
Could not find a suitable Decoder for "[Source File: Smart Play Graph].Output"
SubTypes:
{1AC0BEBD-4D2B-45AD-BCEB-F2C41C5E3788}
{00000000-0000-0000-0000-000000000000}
and then this error
Could not create a Smart Play Graph, will now try a standard graph...

So have you tried using it for .mkv files? Can you share with us your .splitter and .sourcefilter files from the MediaAutoGraph subfolder ... or if it's convenient the whole folder.
You can use MediaFire or other sharing server.

n3w813
25th November 2010, 00:24
I did not have to configure any file types, media types, etc. Just configured the Source filter for Matroska to "lavf dshow source filter" and with "This filter is also a splitter" checked.

I do get the same first error in your post, to disable that prompt, I unchecked "Show Smart Play graph creation errors" checkbox in ZP. I think the error still happens, but ZP will not show it with this checkbox disabled.

See the attached picture, ZP still does end up using the LAVFSplitter as the source filter.

UPDATE: By the way, I've posted a bug report on Inmatrix's forums hoping that the ZP developers will fix this bug on the next release.
http://forum.inmatrix.com/index.php?showtopic=9908&view=findpost&p=42763

n3w813,
how have you configured ZP?
Do you use LAVFSplitter as a source filter or as a splitter?
For which file type have you configured it?
I'm trying to make it work for .mkv but it doesn't work neither as a source filter (with "This filter is also a splitter" checked) nor as a splitter after the Standard File Source.
In the first case I get this error
Unable to Create the "lavf dshow source filter" Filter.

Error Code : 00000001 - The file %2 could not be processed by the application %1 because it requires Indeo® Decoders of type %3
and in the second one I get this warning
Could not find a suitable Decoder for "[Source File: Smart Play Graph].Output"
SubTypes:
{1AC0BEBD-4D2B-45AD-BCEB-F2C41C5E3788}
{00000000-0000-0000-0000-000000000000}
and then this error
Could not create a Smart Play Graph, will now try a standard graph...

So have you tried using it for .mkv files? Can you share with us your .splitter and .sourcefilter files from the MediaAutoGraph subfolder ... or if it's convenient the whole folder.
You can use MediaFire or other sharing server.

nevcairiel
25th November 2010, 14:54
It definitely needs to work as a source filter, a pure splitter mode is not supported.

I actually remembered what the discussion with Blight was about, well partly anyway, i never understood what he was asking back then <.<

clsid
25th November 2010, 15:40
Yes, having a source filter would be very useful. You could re-use some the code from current MPC source filters for that if needed.

nevcairiel
25th November 2010, 16:04
Huh?

I just said the only way it works is being the source filter. It cannot work with any other source filter and "only" be splitter, it needs to be both.

zoose
26th November 2010, 00:07
Ive been testing this splitter as a replacement for the inbuilt MPC-HC one with TS files.
The TS files in question are captured from DVB-T using the latest version of TV Scheduler Pro from http://sourceforge.net/projects/tvschedulerpro/

I cut 20MB of a file that is not playing well with LAVFSplitter the video is played like it is as a lower framerate or dropping frames.
Using the MPC-HC spliiter the file plays back fine.
Am using inbuilt MPEG2, MPEG1 MPC-HC filters.

http://www.mediafire.com/?9d4my5zsfuxi9lg

Kaotech
26th November 2010, 12:17
With Mpc and a Bluray Video: MPEG4 Video (H264), i renamed the Haali media spliter *.ax file .

I unchecked "MPEG PS/TS/PVA", when i load the BD, i've this message : "Cannot render the file", if i checked "MPEG PS/TS/PVA", the LAVFSplitter don't load.

Thanks you for your help :)

mariner
30th November 2010, 18:51
Greetings nevcairiel.

Would like to highlight to you a problem using Arcsoft TMT video decoder with VC1 contents.

It seems that new Arcsoft TMT video decoder after version 175 has problem decoding VC1 contents when presented with media subtype {31435657-0000-0010-8000-00AA00389B71}. The issues include disabling DXVA and playback at the wrong speed.

LAVFSplitter, internal MPC/PotPlayer splitters all suffer from this problem, while the Cyberlink demux 2.0 works well because it uses media subtype {629B40AD-AD74-4EF4-A985-F0C8D92E5ECA}.

The Cyberlinkk PDVD10 decoder doesn't exhibit this problem when forced to accept media subtype {31435657-0000-0010-8000-00AA00389B71}. It uses {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53} when connected to Cyberlink Demux.

Can you look into this and perhaps ditch the media subtype {31435657-0000-0010-8000-00AA00389B71} and use the other two?

Best regards.

SamuriHL
30th November 2010, 18:56
It's a bug in TMT that exists even in TMT5. They know about it so maybe it'll get fixed at some point. It's annoying as hell though, and not just when trying to use LAVF.

mindbomb
30th November 2010, 23:47
umm, why exactly do you guys use arcsoft video decoder?

SamuriHL
1st December 2010, 02:00
I don't personally. But, in TMT itself there is this problem, as well. I noticed it in MKV's with VC1.

Chikuzen
4th December 2010, 00:02
After installation of lavfsplitter, it seems like a player I use becomes unable to play AVIs over the size of 4GB.
A 5.88GB file stops at around 2/3 of it, which leads me to think this is the case.
Is it possible to support the OpenDML specification?

PS:
and, it seems like lavfsplitter is unable to demux MP4s over the size of 4GB.
Especially, MP4 cannot be played at all.
FFplay, MPlayer, VLC, WMP12, QuickTime for Windows and Haali's splitter are able to play this MP4 without any problem.
(But Gabest's splitter and lavfsplitter cannnot.)
thus, I don't think that this cause is in libavformat or the file.

commander1979
9th December 2010, 19:05
Hi

can LAVFSplitter manage ordered chapter and edition like Haali Splitter?

Greets
commander

Blue_MiSfit
11th December 2010, 03:35
Any hope for splitting SMPTE-302M / AES3 PCM in TS?

VLC can do it, but I want to pass the audio into ffdshow for decode so I can use its filters to control downmix settings.. I'm dealing with some files that have 8 channels of audio, a 5.1ch mix and a 2ch Lt/Rt downmix. VLC plays all channels at once, which sounds like shit - obviously.

Thanks,
Derek

nevcairiel
13th December 2010, 10:40
Hi

can LAVFSplitter manage ordered chapter and edition like Haali Splitter?

Greets
commander

Not right now, not sure when, if ever, it might happen. Its a rather complicated thing to support.

nevcairiel
13th December 2010, 10:41
Any hope for splitting SMPTE-302M / AES3 PCM in TS?

VLC can do it, but I want to pass the audio into ffdshow for decode so I can use its filters to control downmix settings.. I'm dealing with some files that have 8 channels of audio, a 5.1ch mix and a 2ch Lt/Rt downmix. VLC plays all channels at once, which sounds like shit - obviously.

Thanks,
Derek

So its basically two audio tracks, but VLC thinks its one?
Well, avformat would need to support it, and expose it as two tracks for it to work properly. I don't know if it does, as i have never seen such a file.

Sample?

Blue_MiSfit
15th December 2010, 02:42
Actually it's a single track, 8 channels, like this:

L
R
C
LFE
Ls
Rs

Lt
Rt

Derek

Blue_MiSfit
15th December 2010, 05:30
I'm getting some samples together for you now.

Blue_MiSfit
15th December 2010, 06:13
Here's some samples:

2ch AES3
http://www.mediafire.com/?u5mwv1t2sdjgr5m

4ch AES3
http://www.mediafire.com/?1jqafh7crjupynw

8ch AES3
http://www.mediafire.com/?kgaxcw9kh2y0y7d

By the way, ffmbc works fine with these files. Getting them into MPC-HC via LAVFSplitter would be awesome! It would save me a lot of roundabout workflow.

Thanks,
Derek

Kurtnoise
15th December 2010, 08:11
https://roundup.ffmpeg.org/issue937

Virtual_ManPL
22nd December 2010, 18:33
It's just me or installing 64bit version of LAVFSplitter 0.11 http://files.1f0.de/lavf/LAVFSplitter-0.11-x64.zip didn't work properly in Windows 7 64bit, even running install.bat with admin rights

http://img149.imageshack.us/img149/5659/bugcc.png (http://img149.imageshack.us/i/bugcc.png/)

hoborg
22nd December 2010, 18:50
It's just me or installing 64bit version of LAVFSplitter 0.11 http://files.1f0.de/lavf/LAVFSplitter-0.11-x64.zip didn't work properly in Windows 7 64bit, even running install.bat with admin rights

http://img149.imageshack.us/img149/5659/bugcc.png (http://img149.imageshack.us/i/bugcc.png/)

Missing VC++2010 Runtime?

Ger
22nd December 2010, 18:53
You probably forgot to install the 64-bit VC++2010 Runtime.

EDIT: I was too late. ;)

Virtual_ManPL
22nd December 2010, 19:04
Awww, yes, forgot about it :p

Kotik
3rd January 2011, 23:57
Greetings nevcairiel.

Would like to highlight to you a problem using Arcsoft TMT video decoder with VC1 contents.

It seems that new Arcsoft TMT video decoder after version 175 has problem decoding VC1 contents when presented with media subtype {31435657-0000-0010-8000-00AA00389B71}. The issues include disabling DXVA and playback at the wrong speed.

LAVFSplitter, internal MPC/PotPlayer splitters all suffer from this problem, while the Cyberlink demux 2.0 works well because it uses media subtype {629B40AD-AD74-4EF4-A985-F0C8D92E5ECA}.

The Cyberlinkk PDVD10 decoder doesn't exhibit this problem when forced to accept media subtype {31435657-0000-0010-8000-00AA00389B71}. It uses {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53} when connected to Cyberlink Demux.

Can you look into this and perhaps ditch the media subtype {31435657-0000-0010-8000-00AA00389B71} and use the other two?

Best regards.

I second that one,

Could you please take a look on this issue.

Thanx in advance.

nevcairiel
4th January 2011, 08:02
{31435657-0000-0010-8000-00AA00389B71} is the official VC-1 media type as defined by Microsoft. I cannot not send it, otherwise other decoders would potentially fail (including the MS one)

I can try to send the ArcSoft specific subtype first, however i don't have the ArcSoft video codec installed, and installing them was always somewhat of a hazzle, so i'll provide a test build with it sooner or later.

PS:
It already does that for the Cyberlink decoder, and sends its subtype together with the official WVC1 subtype.

mariner
4th January 2011, 15:22
Thanks for the reply, nevcairiel.

{31435657-0000-0010-8000-00AA00389B71} is the official VC-1 media type as defined by Microsoft. I cannot not send it, otherwise other decoders would potentially fail (including the MS one)

That's true. It would be good if you could get the LAVFSplitter to use different media type for different decoders, like the Cyberlink Demuxer. MPC's splitter lacks this flexibility unfortunately.


I can try to send the ArcSoft specific subtype first, however i don't have the ArcSoft video codec installed, and installing them was always somewhat of a hazzle, so i'll provide a test build with it sooner or later.

Codec from TMT5 trial version should work with _shard's unlocker.


PS:
It already does that for the Cyberlink decoder, and sends its subtype together with the official WVC1 subtype.
Having some stutter problem with interlaced VC1 when Cyberlink deocder is connected to LAVFSplitter Source splitter, while playback is smooth when Cyberlink Demux is in use. The same media type {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53} is used in both cases. Appreciate if you could look into this.

http://img153.imageshack.us/img153/1748/lavesplitter2.jpg

FYI, playback is also smooth when MPC's splitter is used with media type {31435657-0000-0010-8000-00AA00389B71}.

See this (http://forum.doom9.org/attachment.php?attachmentid=11929&stc=1&d=1294235270). It looks similar to the problem when madshi/jay bee tweaker was in the filter chain.

Best regards.

Filter : CyberLink Video Decoder (PDVD10) - CLSID : {D00E73D7-06F5-44F9-8BE4-B7DB191E9E7E}

- Connected to: LAVFSplitter Source

CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Filter: D:\My_Files\Clips\VC1_60i_SwanLake.m2ts
Pin: Video

- Connection media type:

Video: WVC1 1920x1080 29.97fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 146

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333667

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 1920
dwPictAspectRatioY: 1080
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 74
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 0
biCompression: WVC1
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0020: 00 00 00 00 00 00 00 00 63 17 05 00 00 00 00 00 ........c.......
0030: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0040: 00 00 00 00 00 00 00 00 4a 00 00 00 80 07 00 00 ........J...€...
0050: 38 04 00 00 01 00 00 00 57 56 43 31 00 00 00 00 8.......WVC1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 00 01 0f db fe 3b f2 1b ca 3b f8 86 f1 80 .....Ûþ;ò.Ê;ø†ñ€
0080: c9 09 a5 b8 d7 07 fc 00 00 01 0e 5a df fc ef c8 É.¥¸×.ü....ZßüïÈ
0090: 6c 40 l@


Filter : CyberLink Video Decoder (PDVD10) - CLSID : {D00E73D7-06F5-44F9-8BE4-B7DB191E9E7E}

- Connected to: MPC Source

CLSID: {1365BE7A-C86A-473C-9A41-C0A6E82C9FA3}
Filter: D:\My_Files\Clips\VC1_60i_SwanLake.m2ts
Pin: Video - VC-1, 1920x1080, 29.970 fps (1011,fd,00)

- Connection media type:

Video: WVC1 1920x1080 29.97fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435657-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 146

VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333666

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 1920
dwPictAspectRatioY: 1080
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1080
biPlanes: 0
biBitCount: 0
biCompression: WVC1
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 62 17 05 00 00 00 00 00 ........b.......
0030: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0040: 00 00 00 00 00 00 00 00 28 00 00 00 80 07 00 00 ........(...€...
0050: 38 04 00 00 00 00 00 00 57 56 43 31 00 00 00 00 8.......WVC1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 00 01 0f db fe 3b f2 1b ca 3b f8 86 f1 80 .....Ûþ;ò.Ê;ø†ñ€
0080: c9 09 a5 b8 d7 07 fc 00 00 01 0e 5a df fc ef c8 É.¥¸×.ü....ZßüïÈ
0090: 6c 40 l@


Filter : CyberLink Video Decoder (PDVD10) - CLSID : {D00E73D7-06F5-44F9-8BE4-B7DB191E9E7E}

- Connected to: Cyberlink Demuxer 2.0

CLSID: {F07E981B-0EC4-4665-A671-C24955D11A38}
Filter: Cyberlink Demuxer 2.0
Pin: Video

- Connection media type:

Video: VC1 1920x1080 29.97fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 0
cbFormat: 136

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333666

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 0
dwProfile: 0x00000000
dwLevel: 0x00000000
dwFlags: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1080
biPlanes: 0
biBitCount: 0
biCompression: VC1
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0020: 00 00 00 00 00 00 00 00 62 17 05 00 00 00 00 00 ........b.......
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 00 00 00 00 56 43 31 20 00 00 00 00 8.......VC1 ....
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 ........

Kotik
4th January 2011, 16:14
Having some stutter problem with interlaced VC1 when Cyberlink deocder is connected to LAVFSplitter Source splitter, while playback is smooth when Cyberlink Demux is in use. The same media type {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53} is used in both cases. Appreciate if you could look into this.

FYI, playback is also smooth when MPC's splitter is used with media type {31435657-0000-0010-8000-00AA00389B71}.

Best regards.



I can confirm this.

PDVD9 codec does connect correctly but the video is stuttering.

P.S. I did notice just now that the stuttering is going and coming during a scene change. So each time there is a scene change the stutter is gone for 1 second and then is strikes back till the next scene change. Hope it makes some sense to you.

P.S.2. I can upload a small sample of Interlaced VC-1 .m2ts file. Just let me know.

nevcairiel
5th January 2011, 07:54
VC1 is a horrible format, and i don't really want to spend much more time on it. I can add the ArcSoft GUID, but figuring out stuttering, especially with VC1, always results in alot of debugging.

I'm currently hating DirectShow anyway, and working on Media Foundation things, which feel so much nicer to work with.... :)

SamuriHL
5th January 2011, 14:34
Media Foundation is much more stable anyway. It's definitely the direction everyone is heading.

HeadlessCow
5th January 2011, 23:04
i'm currently hating directshow anyway, and working on media foundation things, which feel so much nicer to work with.... :)

<3 <3 <3 <3

Virtual_ManPL
8th January 2011, 12:06
@ nevcairiel - please reopen bug #26 (https://github.com/Nevcairiel/LAVFSplitter/issues/closed#issue/26) because it's not fixed yet
I still don't have sound in this file, and this error appear on start in MPC-HC
http://img100.imageshack.us/img100/3810/mpchcy.png



Also does anyone experienced video artifacts, like in this bug maybe ?
https://github.com/Nevcairiel/LAVFSplitter/issues#issue/29

And on startup video is frozen ?

Ger
8th January 2011, 22:30
@Virtual_ManPL
Sample from bug #26 plays fine here with MPC-HC + LAVFSplitter + ffdshow for both video and audio. AAC is set to libavcodec in ffdshow in case that makes a difference.

Virtual_ManPL
8th January 2011, 23:58
Could you test it with internal MPC-HC decoders ?
Because it not plays fine here with MPC-HC 1.4.2820.0 (from xvidvideo.ru) + LAVFSplitter 0.11 (XhmikosR updated build) with internal MPC-HC decoders for video&audio on XP 32bit

mariner
9th January 2011, 07:20
I can confirm this.

PDVD9 codec does connect correctly but the video is stuttering.

P.S. I did notice just now that the stuttering is going and coming during a scene change. So each time there is a scene change the stutter is gone for 1 second and then is strikes back till the next scene change. Hope it makes some sense to you.

P.S.2. I can upload a small sample of Interlaced VC-1 .m2ts file. Just let me know.

Thanks for testing, Kotik.

I have attached two screen cap in my post. It looks similar to the problem when madshi/jay bee tweaker is in the filter chain. It seems that frame rate detection somehow got confused when LAVESplitter is in use.

Ger
9th January 2011, 11:46
Could you test it with internal MPC-HC decoders ?
Because it not plays fine here with MPC-HC 1.4.2820.0 (from xvidvideo.ru) + LAVFSplitter 0.11 (XhmikosR updated build) with internal MPC-HC decoders for video&audio on XP 32bit

Right. Internal splitter works with the internal AAC decoder.

LAVFSplitter just skips the internal decoder and goes straight to ffdshow for AAC with that sample, even when the internal AAC decoder is enabled.

Virtual_ManPL
9th January 2011, 13:23
So it can be MPC-HC bug or it's just bug not fully fixed in splitter ?

Ger
9th January 2011, 18:15
I can't answer that. I think nevcairel will have to figure out if the MPC-HC AAC decoder or LAVFSplitter is the problem in this case.

ArcticFox
16th January 2011, 18:30
I have been told i might get better luck posting here.

http://fox.ugug.org/01-15_15-31-17_ITV1_HD_Star_Wars_Attack_of_the_Clones.ts

UK DVB-T2 started in December and it uses HE-AAC for audio, ive tried using LAVF splitter and monograms AAC decoder but i cant get sound working at all, i was wondering if it was something i was doing wrong or not. Thanks.

Carpo
18th January 2011, 06:27
so should this splitter be used or use haali/mpc-hc internal splitter instead?

nevcairiel
21st January 2011, 22:46
LAVFSplitter 0.12
- Fixed a crash issue with certain configurations and files with subtitles
- Revisited file duration logic, now tries to prefer the duration of the video stream. This fixes MPEG-TS duration issues.
- Updated ffmpeg (a lot of issues resolved)

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.12.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.12-x64.zip)

Its been quite some time, and not that much has changed. But i hope i can devote more time to development again now.

In all that time, ffmpeg received alot of changes, which resolved some issues that had been reported previously.

In any case, have fun!

Sebastiii
21st January 2011, 22:48
Thanks m8 :)

SamuriHL
21st January 2011, 23:12
Sweet. Will have to give this a try! Thanks!

Plutotype
21st January 2011, 23:31
Nothing than great news!

JarrettH
22nd January 2011, 01:37
Any idea when this will become the default splitter in MPC? :cool:

Hello Nev :devil:

boyumeow
22nd January 2011, 03:19
Hi nevcairiel, I'm having trouble to download the 64bit version at the github, not sure why, just report so U could verify and rectify. Anyway, I can get the downloads at post#464. Btw, the first page has not been update by this new version link. Hope I'm not bothering U.

Thanks for your great apps.

nevcairiel
22nd January 2011, 09:35
Thats weird, i re-uploaded the 64-bit version on GitHub, and it has the same problem. Oh well.
Updated the first post, though.

nevcairiel
22nd January 2011, 12:31
So it can be MPC-HC bug or it's just bug not fully fixed in splitter ?

The information required for the internal aac decoder to work is just not exposed by avformat, and the libfaad decoder in MPC doesn't like working without it. The libfaad in ffdshow doesn't like it either, however the libavformat aac decoder in ffdshow does work with it.

Not much i can do right now.

dann23
23rd January 2011, 09:07
hello. I tried to use the splitter on windows 2008 r2. it doesn't register. It says that the specified module could not be found.
I tried with 32bit and 64bit splitter. Both have the same problem. But matroskasplitter from mpchc works fine.

SamuriHL
23rd January 2011, 15:01
hello. I tried to use the splitter on windows 2008 r2. it doesn't register. It says that the specified module could not be found.
I tried with 32bit and 64bit splitter. Both have the same problem. But matroskasplitter from mpchc works fine.


Binaries built by me currently require the VC++2010 Runtime (download 32-bit & 64-bit)


Esure they're installed properly.

dann23
23rd January 2011, 16:53
thank you for your help. I found the problem. vc++ 2010 needs to be 64bit. with only 32bit I can't install lavfsplitter. not even the 32 bit version.

zoose
26th January 2011, 11:48
Tested LAVFSplitter 0.12 32bit

My issue reported in this thread here (http://forum.doom9.org/showthread.php?p=1460297#post1460297) is still occurring with LAVFSplitter video can only decode at around 18fps.

nevcairiel
26th January 2011, 15:17
I have been told i might get better luck posting here.

http://fox.ugug.org/01-15_15-31-17_ITV1_HD_Star_Wars_Attack_of_the_Clones.ts

UK DVB-T2 started in December and it uses HE-AAC for audio, ive tried using LAVF splitter and monograms AAC decoder but i cant get sound working at all, i was wondering if it was something i was doing wrong or not. Thanks.

I can play this with LAVFSplitter and LAVCAudio (unreleased). Be patient, i hope to get a first test version out on the weekend. :)

SamuriHL
26th January 2011, 15:22
Um. LAVCAudio? What is that? :)

tetsuo55
26th January 2011, 15:26
something that has been on the mpc-hc roadmap for a long time ;)

Disclaimer: nevcairiel is not doing it because of that roadmap :P

nevcairiel
26th January 2011, 15:27
It has? :)

In any case, its a new audio decoder based on libavcodec. It does not (and probably will not) use any other decoding libraries (like libmad, liba52, libdca), rather focus on getting the most audio quality out of libavcodec.
ffdshow and the mpc-hc decoder both fail at some aspect or another, and i was fed up with dealing with them, so there it is.

Key facts:
- Maximum Quality - output the audio untouched from the decoder (32fp from lossy codecs, integer formats from lossless codecs, tested to work well with 24bit TrueHD)
- There will however be an option to disable certain formats if your renderer does not manage to use them - hopefully with auto-detection of this as well.
- Maximum Media Compat - especially in conjunction with LAVFSplitter, there will be a special Media Type that they share to skip some oddness in DirectShow, but still try to be compatible with other splitters out there.
- No post-processing (get ffdshow in raw mode if you really want more)

tetsuo55
26th January 2011, 15:29
http://sourceforge.net/apps/trac/mpc-hc/wiki/To-Do

See 7 :P

If its something completely different then ill remove my comment

nevcairiel
26th January 2011, 15:38
Well at least replacing the internal audio decoder in MPC-HC would be way easier then replacing the internal splitters.

tetsuo55
26th January 2011, 15:43
I hope so :)

But even as merely an external filter that mpc-hc can use we will have already achieved the main goal (a vanilla ffmpeg decoder for dshow)

Also are you aware of this: http://forum.doom9.org/showthread.php?p=1466162#post1466162
Posting that to make sure yours is not negatively affected

SamuriHL
26th January 2011, 15:47
That's pretty sweet! This will make a lot of people very happy!!

Ger
26th January 2011, 18:32
Sounds promising.

BTW, one more interesting aspect about that UK DVB-T2 Star Wars sample:
VLC tags the second audio track as "visual impaired commentary", English.
MediaInfo says its 1ch.
LAVFSplitter says 2ch (FC).

Don't know what FC means, but 1 channel seems to make sense for commentary. Also adding that "visual impaired commentary" tag to the audio track, similar to what Underground78's patch (http://forum.doom9.org/showthread.php?p=1428791#post1428791) did for hearing impaired subtitles, would be useful for identifying the correct audio track. AFAIK, there is no actual "audible audio" with any player with this commentary track and this particular sample, so no worries if it's silent in with new codec.

PS. Thanks for the MPEG-TS duration fix. LAVFSplitter is now my primary TS splitter. :)

nevcairiel
26th January 2011, 18:39
You wouldn't happen to have a spec for that somewhere, eh? :)

The 2 channels (FC) basically means that it somehow detects 2 channels, which then decode to Front Center, which would make sense, i guess.

Ger
26th January 2011, 18:59
I can't check right now, since etsi.org seems to be down at the moment, and I can't seem to find the pdf on my hdd anymore, but I would think EN 300 468 V1.11.1 would be the best match in this case as well. I'll skim through it later and post the page numbers if I find anything.

For now I'll just quote my previous post regarding the hearing impaired subtitles, for reference when the etsi server starts responding again:

I did some digging, and don't take my word for it (my understanding is limited), but there may be something of interest here:

Regarding the hearing impaired flags in DVB-subs: Page 38 and 73 (http://www.etsi.org/deliver/etsi_en/300400_300499/300468/01.11.01_60/en_300468v011101p.pdf).
Teletext subs vs non-subs: Page 8 (http://www.etsi.org/deliver/etsi_en/300400_300499/300472/01.03.01_60/en_300472v010301p.pdf).

Both found here (http://www.dvb.org/technology/standards/).

If that doesn't help, I guess VLC git.

EDIT:
OK. etsi.org is working now.

This seems to be a v.1.12.1 draft, but it's eight months newer than v1.11.1.
Table 26 - Page 44 (http://www.dvb.org/technology/standards/a038_DVB-SI_dEN300468v1.12.1.pdf) seems to list the relevant hex values for component_type.

kieranrk
26th January 2011, 20:08
VLC tags the second audio track as "visual impaired commentary", English.

VLC uses the ISO language descriptor for that.

mindbomb
26th January 2011, 21:32
will lavcaudio have a mixer to specify your speaker setup?
or will we have to use ffdshow for that?

nevcairiel
26th January 2011, 21:56
You'll have to use ffdshow or the MPC-HC audio switcher for that.
Maybe i'll one day implement matrixing and some other very basic post-processing tasks, but it wont be soon, if ever.

IMHO post processing should be done separately anyway.
I like things that do one thing, and do that one thing very well. Not one thing that does everything, but nothing perfect.

mindbomb
27th January 2011, 04:55
will there be 24 bit flac output in lavcaudio?

nevcairiel
27th January 2011, 07:42
Why would 24bit not be possible? Lossless formats that were encoded as 24bit int, like TrueHD, will be decoded as 24bit int, and output like that.
I added support for LPCM yesterday, both in DVD and BluRay format - those tracks also come in 24bit, and it works just fine.

And yes, FLAC will be decoded to whatever the FLAC stream is. A 24bit FLAC file will be decoded to 24bit and output like that.

tetsuo55
27th January 2011, 09:34
You'll have to use ffdshow or the MPC-HC audio switcher for that.
Maybe i'll one day implement matrixing and some other very basic post-processing tasks, but it wont be soon, if ever.

IMHO post processing should be done separately anyway.
I like things that do one thing, and do that one thing very well. Not one thing that does everything, but nothing perfect.I agree, this stuff should be done by the audio renderer imho..

robpdotcom
27th January 2011, 11:04
Any chance LAVCAudio will decode DTS-HD MA?

nevcairiel
27th January 2011, 11:05
No, unless someone implements it in ffmpeg, and the chances of that are very low.

robpdotcom
27th January 2011, 11:22
Gotcha. Will it do bitstreaming? And will it connect to other splitters, such as Haali? Or maybe I should just wait to see?:D

Either way, thanks for the reply, and for the work you're doing on LAFDSplitter and LAFDAudio.:thanks:

nevcairiel
27th January 2011, 11:25
BitStreaming is no "decoding", its basically just "remuxing". If it gets implemented, it would probably be in LAVFSplitter, because that makes it way easier to implement, and in my mind, also the more logical place (ffmpeg has full support for remuxing all HD audio formats into their bitstream containers, since i demux with ffmpeg anyway, just chaining a muxer in there is really easy)

It should work with other splitters. I have not tested Haali specifically, but in theory, it should work. I'll run tests before the release.

BatKnight
27th January 2011, 11:36
It has? :)

In any case, its a new audio decoder based on libavcodec. It does not (and probably will not) use any other decoding libraries (like libmad, liba52, libdca), rather focus on getting the most audio quality out of libavcodec.
ffdshow and the mpc-hc decoder both fail at some aspect or another, and i was fed up with dealing with them, so there it is.

Key facts:
- Maximum Quality - output the audio untouched from the decoder (32fp from lossy codecs, integer formats from lossless codecs, tested to work well with 24bit TrueHD)
- There will however be an option to disable certain formats if your renderer does not manage to use them - hopefully with auto-detection of this as well.
- Maximum Media Compat - especially in conjunction with LAVFSplitter, there will be a special Media Type that they share to skip some oddness in DirectShow, but still try to be compatible with other splitters out there.
- No post-processing (get ffdshow in raw mode if you really want more)

Can't wait to test it!

Bat

nevcairiel
29th January 2011, 12:58
libav DirectShow Filters 0.13
LAVFSplitter
- Added support for demuxing BluRay LPCM tracks into the MPC-HC format
- Added a new LAVFSplitter specific media type to all audio streams
LAVCAudio
- First version of LAVCAudio implemented

Download: 32-bit (http://files.1f0.de/lavf/LAVFSplitter-0.13.zip) & 64-bit (http://files.1f0.de/lavf/LAVFSplitter-0.13-x64.zip)

There haven't been much changes to the splitter in this release, most work went into LAVCAudio, a audio decoder based on libavcodec.

The main goal of LAVCAudio is simply put maximum audio quality. It'll decode all streams in the highest bitdepth possible, this means:
- fp32 decoding for lossy formats (currently AAC, AC3, DTS and MP3)
- integer decoding of lossless formats (FLAC, TrueHD, LPCM, etc.), 16, 24 or 32 bits, depending on source material.

A secondary goal is maximum audio compatibility.
While it should work with other splitters just fine, its optimized to work in conjunction with LAVFSplitter. LAVFSplitter exports a new media type thats designed to directly tell LAVCAudio which decoder to use. Using this, LAVCAudio should be able to decode all and any audio formats that ffmpeg supports, without DirectShow Media Types interfering.

Before anyone asks, TODOs for the "near" future:
- Decoder Infos Property page
- Configure output sample format (in case your renderer does not support one specific format)
- Options for DRC in supported formats (I know it goes against the maximum quality goal, but if people want DRC, its much higher quality to apply it in the decoder then in a post-processing step -- assuming the codec supports it, like AC3)

For the more distant future:
- Bitstreaming

bjd
29th January 2011, 13:11
Nev,

Really appreciate the work you've put in this week to get this released.

:thanks:

adam777
29th January 2011, 13:28
Let the testing begin.
Thanks, nevcairiel :thanks:

* EDIT *
Early thoughts...
AAC seems to be working correctly, a 5.1 AAC file was decoded properly and fed to ReClock audio renderer as 6 channels.

AC3 pretty much the same.

As for DTS, on every DTS file I've tried MPC-HC loads an extra filter, called "AVI<->AC3/DTS", which seems to connect between the splitter and the decoder and convert the 5.1 stream to stereo.
As a workaround, setting lavc audio decoder as preferred in MPC-HC seems to allow the direct connection, as expected.
I suspect it's some sort of weird mess on my side...

PS.
I've been having some problems as of lately with some files not playing right away, only after I perform a seek using the ctrl+right hotkey.
The new audio decoder seems to solve this problem, which might suggest it was FFDShow's audio decoder fault.

bjd
29th January 2011, 13:44
Excellent work

Couple of tests
===========

1) MP3/DTS/AC3/AAC file

Mpc-hc -> internal splitter -> lavc audio -> Reclock

Reclock identifies 32fp as expected - Sounds Great

2) Dark Knight Bluray (TrueHd test)

Mpc-hc -> lavf Splitter -> lavc audio -> Reclock

Reclock identifes 24bit PCM - Sounds Great

3) Dark Knight Bluray (TrueHd test)

Mpc-hc -> internal Splitter -> lavc audio -> Reclock

Reclock identifes 32fp - No Sound

Presumably lavc can't handle interleaved Truehd/ac3 ?

Plutotype
29th January 2011, 13:55
Hi,

Thanks for your work newcairiel and I think, finally we have somebody, who is able to work on splitter and audio decoder paralelly. In the world of multiple types of audiostreams, this was necessary to fix connections between them and the splitter.
After first testing, when LAVCaudio preffered, it works an ALL samples I had in my library, but will test more later. Its also available to have Arcsoft and LAVCaudio decoders combined, so where Arsocft does not connect, LAVCaudio works flawlessly ( LPCM ).
With LAVsplitter and LAVCaudio the old LPCM mono stream issue is gone link (http://sourceforge.net/apps/trac/mpc-hc/ticket/71).

Many thanks again
Peter

nevcairiel
29th January 2011, 14:27
Excellent work

Couple of tests
===========

3) Dark Knight Bluray (TrueHd test)

Mpc-hc -> internal Splitter -> lavc audio -> Reclock

Reclock identifes 32fp - No Sound

Presumably lavc can't handle interleaved Truehd/ac3 ?

The MPC-HC internal MPEG Splitter sends an AC3 media type for TrueHD streams. Guess i need to add some tricks to make it detect that its actually TrueHD and not AC3 thats coming in there.
Or i just fix the MPC-HC mpeg splitter.

On another note, i noticed that avcodec enables DRC by default. So it would seem that AC3 and DTS actually have DRC going on for them in this version of LAVCAudio. It'll be off, or configurable, in the next version.
Personally, i failed to notice the difference, but only tried on my dev PC which has a limited link to my audio system. Need to try on my HTPC with full 7.1 LPCM hookup.

bjd
29th January 2011, 15:34
Nev,

The DRC thing is interesting. I use the Arcsoft decoder for DTS, but have only ever come accross one DRC'd DTS and it was only set to -4db compared to the normal -27-29db you get with AC3.

The fact is, that your 32fp output from lavc is far superior to the 32fp liba52 output from Ffdshow.

liba52 is far quieter and sounds compressed by comparison. libavcodec levels in ffdshow are similar but output is limited to 16int when no DRC. However the DRC is noticable between lavc and ffdshow when comparing DRC ac3

Superb
29th January 2011, 16:12
@nevcairiel: Amazing work. I keep reading this thread and following development, and I'm really impressed by all the contribution you give. Thank you.

Ger
29th January 2011, 19:19
Great work. LATM samples from Norway, Denmark, New Zealand, Portugal and UK all play fine. :)

Noticed a problem with LATM 5.1/2.0 audio track switching though. I don't know if you downloaded the Danish sample I mentioned earlier in the thread "The_Gift_-_DR_HD_-_2009-12-23.ts". It used to be on a MediaPortal server, but the link is dead now. Let me know if you need it and I can upload it somewhere else.

The 5.1 track in this sample used to sound like a power tool with Monogram AAC, but plays fine now with LAVCAudio. The problem occurs if I try to switch to the stereo track (which used to work with Monogram). After switching it goes silent, and right-clicking in the MPC-HC video frame produces an "Unspecified error" dialog. I also noticed that LAVCAudio connects to AC3Filter with this sample, I guess because it's 5.1 rather than stereo like the other LATM samples, feeding PCM float to AC3Filter. Maybe the error is related to that?

nevcairiel
29th January 2011, 19:24
That it adds AC3Filter in there is weird, but i might know why it happens, i could use the sample to verify though.

Ger
29th January 2011, 20:10
The_Gift_-_DR_HD_-_2009-12-23.ts (http://www.multiupload.com/O17QVRTW8N)

BTW, I was using MPC-HC r2897.

nevcairiel
29th January 2011, 20:18
Hm i cannot reproduce any problems with switching. It does hang for half a second on switch, but then just plays.
I'll install AC3Filter and see what happens.

Ger
29th January 2011, 21:16
Weird. I just tried the opposite, uninstalling AC3Filter. The first attempt to play that sample after uninstalling AC3Filter (1.63b Full) made MPC-HC hang. Second attempt LAVFSplitter connected to Monogram AAC (producing power tool sound), even though both LAVFSplitter and LAVCAudio are set to "prefer" in MPC-HC.

LAVFSplitter just doesn't want to connect to LAVCAudio with this sample when I don't have AC3Filter installed. After reinstalling AC3Filter it's back to the original behavior.

nevcairiel
29th January 2011, 22:13
Connection between LAVFSplitter and LAVCAudio should always work. Its more likely that LAVCAudio and your sound renderer refuse to connect, and therefore the graphbuilder chooses another filter.

Are you using ReClock, the MPC-HC renderer, or the default windows renderer?
Did you try with other files, like AC3 or "normal" AAC, which also decode to 32-bit float, and say a Vorbis file (or a PCM file), which decodes to 16-bit int, for comparison?

Edit:
It would appear i cannot get MPC-HCs own audio renderer to accept float input. It'll always try to use your favorite renderer, and as long as it can build a decoder chain to get there, thats what it will do.
If it cannot get it to do that, it'll switch to another renderer, and choose the codecs freely.

At least i know how to test the automatic sample format chooser for the next version now.. =)

Ger
29th January 2011, 23:52
Think you're on to something there.

I use the System Default renderer (more info about that below).

It's definitely related to 5.1 vs. 2.0. If I uninstall AC3Filter I can switch between the 5.1 and 2.0 tracks in that sample, and the 5.1 track loads Monogram and the 2.0 track loads LAVCAudio.

With lavcaudio set to "prefer":
AC3 2.0 track: LAVCAudio loads (alone) and sounds good.
AC3 5.1 track: Highest merit AC3 decoder is used. Internal, ffdshow etc. LAVCAudio is not loaded at all.

I'll just include some more info in case it helps (this is all with The Gift sample):

With AC3Filter installed:
LAVFSplitter -> LAVCAudio -> AC3Filter -> Audio Switcher -> Default DirectSound Device - CLSID : {79376820-07D0-11CF-A24D-0020AFD79767}

Without AC3Filter:
LAVFSplitter -> Monogram AAC decoder -> Audio Switcher -> Default DirectSound Device - CLSID : {79376820-07D0-11CF-A24D-0020AFD79767}

Default DirectSound Device should be Speakers on Realtek ALC 885 HDAUDIO. Configured for stereo (tried changing to 5.1, even though I don't have enough speakers, but no change in behavior).

Not using custom mapping in MPC-HC audio switcher.

Tried "DirectSound: AMD HDMI Output" (which I use regularly for my TV), and it also goes straight to Monogram AAC (when AC3Filter isn't installed), like the Realtek DS default.

Tried Speakers (without the DirectSound prefix), and lavcaudio now loads, but no audible result (silence).

The only audiorenderer option in MPC-HC that produces proper sound for me without AC3Filter is "Default WaveOut Device - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}".

So summarized, I guess LAVCAudio is happy to accept 2.0 tracks, but doeesn't want 5.1 tracks when used with with any of my DirectSound renderers. With non-DS renderers the results are mixed.

If you want me to copy/paste the pin info from a particular place in the chain, with or without AC3Filter installed, let me know.

nevcairiel
30th January 2011, 00:04
The output pin of AC3Filter in the default setup would be helpful, and possibly also of Monogram without AC3Filter.

I see two posibilities there: Either its giving up because of the float data, or its giving up because of the multi-channel data when you have only stereo. I hope the data will give me some more pointers.
Which OS are you on? The default mixer in Win7 seems to be plenty smart and deals with all i throw at it, so not easy to solve such riddles =P

In any case, the next version will have a property page where you can disable certain sample formats, which would at least help to debug one of these possibilities. I wrote some code for automatic detection as well, but who knows if the audio renderers are really honest about their answers. ;)

Ger
30th January 2011, 00:33
I'm using Win7 Ultimate 64-bit.
All players/filters used are 32-bit though.

AC3Filter Output pin with my normal settings, which is to downmix to stereo:

Filter : AC3Filter - CLSID : {A753A1EC-973E-4718-AF8E-A3F554D45C44}

- Connected to:

CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Audio

- Connection media type:

Audio: PCM 48000Hz stereo 1536kbps

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

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

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

- Enumerated media type 0:

Set as the current media type


AC3Filter downmixing disabled. Set to output "as is". This does not change the situation/graph/result at all AFAICT. I can still hear the audio just fine.
Filter : AC3Filter - CLSID : {A753A1EC-973E-4718-AF8E-A3F554D45C44}

- Connected to:

CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Audio

- Connection media type:

Audio: WAVE_FORMAT_EXTENSIBLE 48000Hz 6ch 4608kbps

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

WAVEFORMATEX:
wFormatTag: 0xfffe
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 576000
nBlockAlign: 12
wBitsPerSample: 16
cbSize: 22 (extra bytes)

WAVEFORMATEXTENSIBLE:
wValidBitsPerSample: 16
dwChannelMask: 0x0000003f
SubFormat: {00000001-0000-0010-8000-00AA00389B71}

pbFormat:
0000: fe ff 06 00 80 bb 00 00 00 ca 08 00 0c 00 10 00 þÿ..€»...Ê......
0010: 16 00 10 00 3f 00 00 00 01 00 00 00 00 00 10 00 ....?...........
0020: 80 00 00 aa 00 38 9b 71 €..ª.8›q

- Enumerated media type 0:

Set as the current media type

- Enumerated media type 1:

Audio: PCM 48000Hz 6ch 4608kbps

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

WAVEFORMATEX:
wFormatTag: 0x0001
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 576000
nBlockAlign: 12
wBitsPerSample: 16
cbSize: 0 (extra bytes)

pbFormat:
0000: 01 00 06 00 80 bb 00 00 00 ca 08 00 0c 00 10 00 ....€»...Ê......
0010: 00 00 ..


Monogram AAC decoder output pin (no channel mixing) when AC3Filter is not installed and LAVCAudio is not loaded. I can hear the audio weakly in the background, but an annoying noise on top of that is far more powerful:
Filter : MONOGRAM AAC Decoder - CLSID : {3FC3DBBF-9D37-4CE0-8689-653FE8BAB9B3}

- Connected to:

CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Audio

- Connection media type:

Audio: WAVE_FORMAT_EXTENSIBLE 48000Hz 6ch 4608kbps

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

WAVEFORMATEX:
wFormatTag: 0xfffe
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 576000
nBlockAlign: 12
wBitsPerSample: 16
cbSize: 22 (extra bytes)

WAVEFORMATEXTENSIBLE:
wValidBitsPerSample: 16
dwChannelMask: 0x0000003f
SubFormat: {00000001-0000-0010-8000-00AA00389B71}

pbFormat:
0000: fe ff 06 00 80 bb 00 00 00 ca 08 00 0c 00 10 00 þÿ..€»...Ê......
0010: 16 00 10 00 3f 00 00 00 01 00 00 00 00 00 10 00 ....?...........
0020: 80 00 00 aa 00 38 9b 71 €..ª.8›q

- Enumerated media type 0:

Set as the current media type



Setting Monogram to downmix to stereo does not change that audio/noise.

nevcairiel
30th January 2011, 00:37
Thanks. All the working filters are outputting 16bit integer, while i throw 32-bit float data at the renderer.

One last test, can you set the sample format in AC3Filter to "AS IS" as well (or PCM Float for that matter), and see if it stops working completly, or rather, falls back to Monogram?
I'll have probing code in the future, as well as manual toggles to disable formats, which should fix it then.

Ger
30th January 2011, 00:59
I just noticed that and was actually just about to post the pin info. There is no as is option in the format drop-down, so this is with the three AC3Filter main tab output format options set to as is for channels, as is for rate, and PCM Float for format. SPDIF unchecked.

The audio still works/sounds just fine.

Filter : AC3Filter - CLSID : {A753A1EC-973E-4718-AF8E-A3F554D45C44}

- Connected to:

CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Audio

- Connection media type:

Audio: WAVE_FORMAT_EXTENSIBLE 48000Hz 6ch 9216kbps

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

WAVEFORMATEX:
wFormatTag: 0xfffe
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 1152000
nBlockAlign: 24
wBitsPerSample: 32
cbSize: 22 (extra bytes)

WAVEFORMATEXTENSIBLE:
wValidBitsPerSample: 32
dwChannelMask: 0x0000003f
SubFormat: {00000003-0000-0010-8000-00AA00389B71}

pbFormat:
0000: fe ff 06 00 80 bb 00 00 00 94 11 00 18 00 20 00 þÿ..€»...”.... .
0010: 16 00 20 00 3f 00 00 00 03 00 00 00 00 00 10 00 .. .?...........
0020: 80 00 00 aa 00 38 9b 71 €..ª.8›q

- Enumerated media type 0:

Set as the current media type

- Enumerated media type 1:

Audio: IEEE Float 48000Hz 6ch 9216kbps

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

WAVEFORMATEX:
wFormatTag: 0x0003
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 1152000
nBlockAlign: 24
wBitsPerSample: 32
cbSize: 0 (extra bytes)

pbFormat:
0000: 03 00 06 00 80 bb 00 00 00 94 11 00 18 00 20 00 ....€»...”.... .
0010: 00 00 ..

nevcairiel
30th January 2011, 01:04
Interesting. Its still sending a MEDIASUBTYPE_PCM and then marks it as float with the format tag.

I'll run some tests with that.

nevcairiel
30th January 2011, 01:56
I looked into that, and it looks like ffdshow is using the same output type that i'm using, so huh.
In any case, i fixed a bug earlier that would always result in wrong channel assignment in the first media type. Maybe that caused it already.

Here is a quick test build with that fixed:
http://files.1f0.de/lavf/LAVCAudio-0.13-debug1.zip
With that build, my media type looks suspiciously similar to what you posted in the last post, except that my subtype is MEDIASUBTYPE_IEEE_FLOAT instead of PCM - otherwise identical.

Maybe that was already it. Who knows! Just need to rule it out.
I currently have my realtek onboard card turned off, going to activate it tomorrow to see if there is any difference when using it.
But zzzzzz now.

PS:
that build also has DRC turned off :D

bjd
30th January 2011, 01:57
On another note, i noticed that avcodec enables DRC by default. So it would seem that AC3 and DTS actually have DRC going on for them in this version of LAVCAudio.

Already looking forward to the next version.

I have been testing the splitter and the audio filter further today. The audio filter seems to do its job just about perfectly and is amazing for a week's work.

With regard to the splitter, I have noticed that when splitting an .mkv file with AC3 if ffdshow audio is invoked, the file never starts playing. Moving the seek bar on solves this. This could be an ffdshow bug or a slight incompatibility as replacing ffdshow with lavcaudio solves this......all the more reason for getting rid of the DRC in the next version :)

Ger
30th January 2011, 03:33
I looked into that, and it looks like ffdshow is using the same output type that i'm using, so huh.
In any case, i fixed a bug earlier that would always result in wrong channel assignment in the first media type. Maybe that caused it already.

Here is a quick test build with that fixed:
http://files.1f0.de/lavf/LAVCAudio-0.13-debug1.zip
With that build, my media type looks suspiciously similar to what you posted in the last post, except that my subtype is MEDIASUBTYPE_IEEE_FLOAT instead of PCM - otherwise identical.

Maybe that was already it. Who knows! Just need to rule it out.
I currently have my realtek onboard card turned off, going to activate it tomorrow to see if there is any difference when using it.
But zzzzzz now.

You can forget about that Realtek option, because you've already fixed it. :)

This build works perfectly with absolutely everything I've thrown at it so far.

When AC3Filter is installed it stays out of the graph and LAVCAudio handles all the audio decoding stuff alone. When AC3Filter is not installed LAVCAudio still loads and handles everything just fine. So everything works as expected in all cases. Switching from 5.1 to 2.0 and back also works fine with that same sample. AC3 5.1 is also fine now.

PS:
that build also has DRC turned off :D
I actually rather like DRC, so I'll probably enable it when it becomes optional. I don't have very impressive audio hardware, and I'm not a big fan of perceived loudness jumps. Especially when people are sleeping. ;)


PS. This is not a problem for me or anyone else who knows how to set a decoders merit or use a player that can prefer it like MPC-HC, but can you control the merit it gets when registering it in the .ax itself, or does it have to be set externally afterwards? If you control it, maybe you should increase the merit. Because if I don't change the merit or set it to "prefer" LAVCAudio seems to come after Monogram, ffdshow etc. Or maybe LAVFSplitter can prioritize LAVCAudio regardless of merit, unless that is considered bad behavior?

Anyway, thanks again. Amazing work. :thanks:

Ger
30th January 2011, 04:09
With regard to the splitter, I have noticed that when splitting an .mkv file with AC3 if ffdshow audio is invoked, the file never starts playing. Moving the seek bar on solves this.

Can't reproduce here with a random mkv with 5.1 AC3. LAVFSplitter 0.13 and ffdshow r3751. 32-bit versions. Maybe it only happens to some files?

I have a similar issue with a tiny minority of AVIs with XviD/MP3 though. In my case the elapsed time is ticking away, but there is a black screen and no audio until I seek. Only happens when starting from the very beginning of the file and I very rarely encounter such files. I have many files encoded by the same guy, and only a few are affected. Don't think my particular issue is related to audio/ffdshow though. It has also been present in all old LAVFSplitter betas AFAIR, I just never prioritized reporting it.

bjd
3rd February 2011, 14:47
Here is a quick test build with that fixed:
http://files.1f0.de/lavf/LAVCAudio-0.13-debug1.zip

No DRC :thanks::thanks:

I can finally de-prioritise ffdshow. I am not sure what ffdshow does with the audio signal, but every format I throw at the new audio decoder sounds purer.

I have been using the splitter/decoder all week and have yet to find an .avi/.mkv it has a problem with.

nevcairiel
3rd February 2011, 15:22
PS. This is not a problem for me or anyone else who knows how to set a decoders merit or use a player that can prefer it like MPC-HC, but can you control the merit it gets when registering it in the .ax itself, or does it have to be set externally afterwards? If you control it, maybe you should increase the merit. Because if I don't change the merit or set it to "prefer" LAVCAudio seems to come after Monogram, ffdshow etc. Or maybe LAVFSplitter can prioritize LAVCAudio regardless of merit, unless that is considered bad behavior?

Configuring the merit from within the decoder is possible, however on Vista/7 it requires that the process is launched with administrative rights - and who does that with their media player.

I will increase the merit so its higher on the preferred list, and once i start supplying a installer, i might as well add an option inside there to choose it at install time.

LAVFSplitter does not decide which filters it connects to. I could, however, add an option to LAVFSplitter to disable the "normal" media types, which would result in LAVFSplitter only ever connecting to LAVCAudio, and never anything else :rolleyes:

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

While the forums were down, i've been mostly polishing it and fixing bugs. Right now i'm still working on the config panel, which will allow you to configure DRC, as well as disable certain sample formats (mostly for debugging). Not sure what else needs to be configurable in the audio decoder. I'm not yet ready to do re-matrixing, although for maximum quality those options should be present in the decoder, as some formats include matrix informations, especially how to do a stereo downmix, for example - and that information is lost when letting someone else do the downmixing.

Mercury_22
3rd February 2011, 16:39
Channels for 7.1 LPCM are wrong mapped : side (surround) channels are output to rear speakers and vice versa
If you need test files here are some http://forum.doom9.org/showthread.php?p=1333032#post1333032

Also when using LAVCAudio the playback it's NOT as smooth as when using MPC-HC's decoders (watch the green line in stats) !

nevcairiel
3rd February 2011, 16:43
The renderer stats have nothing to do with the audio decoder.

Also, does this only affect LPCM 7.1 and not other 7.1 sources?

Mercury_22
3rd February 2011, 16:47
The renderer stats have nothing to do with the audio decoder.

Also, does this only affect LPCM 7.1 and not other 7.1 sources?

Just the LPCM but I can't test DTS-HD or E-AC3 7.1 due to the limitations (only 5.1) of the ffmpeg

EDIT I'm using xhmikosr's latest builds http://xhmikosr.1f0.de/index.php?folder=bGF2ZnNwbGl0dGVy

nevcairiel
3rd February 2011, 18:36
It turns out, TrueHD is actually wrong, and i used that to setup the channel assignment matrix. TrueHD is now special cased, and all 7.0/7.1 formats should hopefully be fine.

I couldn't test with any other 7.1 formats yet (besides TrueHD and LPCM), as i have none. I got my hands on some FLAC trac, which seems to be fine as well now, but the file seemed bugged to begin with, so i'll not use it as any reference.

Virtual_ManPL
3rd February 2011, 21:31
@ nevcairiel - can you reopen bug #23 (https://github.com/Nevcairiel/LAVFSplitter/issues/closed#issue/23) ? Because I accidentally close it

mindbomb
3rd February 2011, 22:54
I have a lavfsplitter issue. maybe bjd experienced this also with the dark knight, but when i tried playing a m2ts with vc-1 video and truehd audio, the player reported the file length at 5 mins instead of 2 and a half hours. It was able to play the first 5 minutes normally, and then the video continued to play while the seek bar was maxed out. with mpc's internal filter and lavcaudio, there is no sound and 32 float as bjd said.

nevcairiel
3rd February 2011, 22:56
Is the file actually longer that you tried to open? Or is it one of those seamless branching BluRays that are split into hundred small pieces? :d

Plutotype
3rd February 2011, 23:15
I experience the issue with a wrong lenght of the track too. Seekbar in MPC-HC shows only couple of minutes of the real lenght - you can not seek in the full timeline. The weird thing is, im experiencing this in untouched streams and also in remuxed streams ( Im using TSmuxer 10.6 ). Using 4 of 5 movies have wrong lenght.
LAVsplitter 0.13, madvr 0.36

mindbomb
4th February 2011, 00:01
Is the file actually longer that you tried to open? Or is it one of those seamless branching BluRays that are split into hundred small pieces? :d

When using the mpc splitter, i get the correct time of 2h 38min 25s. when using lavfsplitter, i get 5 min 42 seconds.
The seekbar actually does work correctly for the entire 5 min and 42 seconds though. After 5 min 42 seconds, the video just continues to play, but the player reports 5:42/5:42 continually.

I'm playing the m2ts from the stream folder, there appears to be no seamless branching, it is just one large file.

bjd
4th February 2011, 00:06
Is the file actually longer that you tried to open?

Example below is main m2ts from PAL verson of 300 (Vc-1/TrueHd)

General
ID : 0 (0x0)
Complete name : E:\BDMV\STREAM\00000.m2ts
Format : BDAV
Format/Info : Blu-ray Video
File size : 24.7 GiB
Duration : 1h 56mn
Overall bit rate : 30.3 Mbps
Maximum Overall bit rate : 48.0 Mbps

Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : VC-1
Format profile : AP@L3
Codec ID : 234
Duration : 1h 56mn
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy


Mpc-Hc reports 03:06

File carries on playing after 3 mins 6 secs fine. No problems with playback just wrong time. m2ts with vc-1/dts-hd seem fine. The Dark Knight PAL (vc1/truehd) correctly shows 02:32:13.

Batman Forever PAL (vc1/truehd) main m2ts (37+ gb) shows only 17 seconds as the running time. Once again plays fine after 17 seconds.

mindbomb
4th February 2011, 05:22
atm, if you use ffdshow for mixing, it converts the 24 bit pcm to 16 bit or 32 bit pcm. I want to avoid this, so I'm wondering what other options are there for just a simple stereo downmix?

also, im looking for a way to disable dts decoding in lavcaudio. I'm guessing I can do this by removing a media subtype, though I don't know which one.

nevcairiel
4th February 2011, 07:59
Can you try LAVFSplitter 0.12 on those m2ts files and see if the duration is more accurate?
Guess i have to get some of my BluRays and test them for that bug.

bjd
4th February 2011, 10:29
also, im looking for a way to disable dts decoding in lavcaudio. I'm guessing I can do this by removing a media subtype, though I don't know which one.

If you are using Mpc-Hc, move your preferred dts decoder above lavc audio in your external list. If both are set to preferred, these will be used first before any other filters (including internal ones). Whichever is higher in the list will be used first.

You may have to remove some media types from your prefered DTS decoder if it decodes other streams, but for DTS, it should just need.

{E06D8033-DB46-11CF-B4D1-00805F6CBBEA} DTS
{00002001-0000-0010-8000-00AA00389B71} DTS in mkv

I usually clear the list and create a "Any Type" main media type and add a custom list of subtypes.

You need to check what your splitter presents, in case you need to add any other types.

nevcairiel
4th February 2011, 10:31
I'll eventually offer some config options which formats it should decode, but thats something for a later day.

bjd
4th February 2011, 12:42
atm, if you use ffdshow for mixing, it converts the 24 bit pcm to 16 bit or 32 bit pcm. I want to avoid this, so I'm wondering what other options are there for just a simple stereo downmix?

I am using unified Xonar Drivers on a D2. Although it is a 7.1 soundcard, I am only listening to headphones at work. I can send bit exact multichannel 24bit pcm via relclock to the soundcard and by selecting 2 channels in Xonar control panel get a decent sounding downmix, but obviously I have no control or knowledge of how that downmix is actually performed in soundcard's driver and it is a 32bit DSP anyway.

BelowSky
4th February 2011, 15:29
Hi nevcairiel.
May I suggest a better naming for the codecs, so they look more professional!

"lavc audio decoder" to "LAV Audio Decoder"

"lavf dshow source filter" to "LAV Splitter"
or as:
"LAV DS Splitter" for DirectShow
"LAV MF Splitter" for Media Foundation.

- Unified "lavc" & "lavf" into "LAV" so that it could be used as a codec brand name.
- Removed "C" and "F" from "lavc" & "lavf" because "Decoder" and "Splitter" can replace them efficiently.
- Replaced "filter" with "Splitter" because it is more common on Windows to use "Splitter" than "filters"
- Last but not least, I didn't know what to do with "dshow". I'm not sure if you guys made that to distinguish it from a Media Foundation variant.

nevcairiel
4th February 2011, 16:23
Mpc-Hc reports 03:06

File carries on playing after 3 mins 6 secs fine. No problems with playback just wrong time. m2ts with vc-1/dts-hd seem fine. The Dark Knight PAL (vc1/truehd) correctly shows 02:32:13.

Batman Forever PAL (vc1/truehd) main m2ts (37+ gb) shows only 17 seconds as the running time. Once again plays fine after 17 seconds.

I found a disc with the same problem, but it seems to be weird. None of the timings are even close to the real length, must be something funny in ffmpeg. But if it only affects blurays, i may be able to do something about that...

bjd
4th February 2011, 16:37
But if it only affects blurays, i may be able to do something about that...

It does seems isolated to vc-1/truehd in m2ts. I have not come across it it any mkv/avi regardless of the streams.

I wonder if ffplay exhibits the same bug then ?

mindbomb
4th February 2011, 20:11
I usually clear the list and create a "Any Type" main media type and add a custom list of subtypes.


Thanks bjd, that worked out well.

Will Lavcaudio ever have a stereo and 5.1 downmix option?
I know nev is trying to limit postprocessing, but I'm finding it very difficult to get lavcaudio to work on my stereo setup.

Right now, my sound card just drops all the channels except the FL and FR, so i have a lot of missing sound.

bjd
4th February 2011, 20:34
Right now, my sound card just drops all the channels except the FL and FR, so i have a lot of missing sound.

What soundcard do you have ?

must be something funny in ffmpeg

ffmplay will not play the .m2ts files off my 300 disc, but interestingly reports an incorrect duration 00:00:03.98 on the main movie file

mindbomb
4th February 2011, 20:53
im using a laptop with IDT high definition audio codec as its integrated sound atm.

nevcairiel
4th February 2011, 21:01
Adding rematrixing is something that i might do eventually, because alot of audio drivers do actually fail to downmix multichannel when only stereo is connected, for example.
To what extend, i cannot say yet. The configuration for that is probably the most annoying part to code.

bjd
4th February 2011, 23:03
Just found a possible issue with DVD_LPCM

LAVf splitter correctly identifes pcm_dvd, 96000 Hz, 2 channels, s24, 4608 kb/s

and the lavc decoder is fed 24/96 PCM

CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Filter: E:\VIDEO_TS\VTS_01_1.VOB
Pin: Audio

- Connection media type:

Audio: 0x0000 96000Hz stereo 4608kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_DVD_LPCM_AUDIO {E06D8032-DB46-11CF-B4D1-00805F6CBBEA}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 256000
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0x0000
nChannels: 2
nSamplesPerSec: 96000
nAvgBytesPerSec: 576000
nBlockAlign: 8
wBitsPerSample: 24
cbSize: 0 (extra bytes)

pbFormat:
0000: 00 00 02 00 00 77 01 00 00 ca 08 00 08 00 18 00 .....w...Ê......
0010: 00 00

But outputs 32bit PCM

Audio: WAVE_FORMAT_EXTENSIBLE 96000Hz stereo 6144kbps

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

WAVEFORMATEX:
wFormatTag: 0xfffe
nChannels: 2
nSamplesPerSec: 96000
nAvgBytesPerSec: 768000
nBlockAlign: 8
wBitsPerSample: 32
cbSize: 22 (extra bytes)

WAVEFORMATEXTENSIBLE:
wValidBitsPerSample: 32
dwChannelMask: 0x00000003
SubFormat: {00000001-0000-0010-8000-00AA00389B71}

pbFormat:
0000: fe ff 02 00 00 77 01 00 00 b8 0b 00 08 00 20 00 þÿ...w...¸.... .
0010: 16 00 20 00 03 00 00 00 01 00 00 00 00 00 10 00 .. .............
0020: 80 00 00 aa 00 38 9b 71 €..ª.8›q

- Enumerated media type 0:

Set as the current media type

nevcairiel
4th February 2011, 23:34
Thanks for the report, i think i know why, should be fixed for the next version

Edit: Reproduced and fixed.

bjd
5th February 2011, 01:06
im using a laptop with IDT high definition audio codec as its integrated sound atm.

I have a similar issue with my laptop's SoundMax Digital HD codec.
To be honest, given that I am listening via crumby laptop speakers in this situation, 24bit output as 32int in ffdshow post proc does not really matter.

With headphone sound from the laptop, I have a Sennheiser MM200 AD2P bluetooth headset (limited to either 16/44.1 or 16/48 pcm) that sounds far superior to the built in SoundMax headphone socket. In this situation I use the ffdshow sample rate converter filter set to 44.1/48khz, and set ffdshow matrix mixer to 2 channel and output as 16bit to reclock

mindbomb
5th February 2011, 03:12
my desktop has a realtek integrated audio and a creative sound card.
when using the realtek, it can't downmix properly. When using the creative, it can.

I'm assuming that most people use a realtek audio chipset, so the rematrixing capability would be a welcome addition for a lot of people.
I'm glad to hear that it is being considered.

bjd
5th February 2011, 11:33
when using the realtek, it can't downmix properly.

I have the Realtek ALC888. It is used purely in 2 channel mode sending spdif to a high end external dec, I use the realtek because although the PCM output is poor, the SPDIF is bit perfect.

It doesnot have any problems downmixing multi-channel to stereo.

mindbomb
5th February 2011, 21:55
actually, i think i see the problem. I was using Wasapi as my audio interface. I can get downmixing to work if I use directsound.

On a related note, I've noticed that lavcaudio won't connect to default directsound device. I can only get directsound to work if i select it in reclock.

nevcairiel
5th February 2011, 22:43
actually, i think i see the problem. I was using Wasapi as my audio interface. I can get downmixing to work if I use directsound.
That'll do it. WASAPI skips the windows mixer.


On a related note, I've noticed that lavcaudio won't connect to default directsound device. I can only get directsound to work if i select it in reclock.

You're using 0.13 i assume?

You can try the debug build i posted 2 pages back, it fixed a bug with connections
http://files.1f0.de/lavf/LAVCAudio-0.13-debug1.zip

0.14 will be out tomorrow, though.

bjd
5th February 2011, 23:07
actually, i think i see the problem. I was using Wasapi as my audio interface. I can get downmixing to work if I use directsound.

Right, I am using XP and Reclock/Kernel Steaming for bit exact rendering. The Realtek has no issues downmixing.

I have had no direct sound issues with lavc either when testing.

For what it's worth reclock is the way to go with a decent audio decoder like lavc.

0.14 will be out tomorrow, though.

@nevcairiel Many thanks.

mindbomb
6th February 2011, 00:20
i tested on a realtek alc 882's analog output, and alc 883's digital output, and when using wasapi in windows 7, i had no downmixing, so sound was messed up on things greater than 2 channels.

but i don't mind using directsound and lavcaudio, because i still find that better than wasapi and ffdshow. Ideally ofc I would like wasapi and lavcaudio.

bjd
6th February 2011, 00:25
Interesting, the only odd thing I have noticed with the Realtek un der XP is when in multichannel mode, the spdif will only output front L & R.

On my Windows7 work PC, i have not encountered any WASAPI anomalies, but happy to stick with XP on the home media server whilst I still can.

mindbomb
6th February 2011, 00:32
spdif only does support a maximum of 2 channel pcm, so that might explain that multichannel problem.

bjd
6th February 2011, 00:42
spdif only does support a maximum of 2 channel pcm, so that might explain that multichannel problem.

Sure, just would have expected a downmix like you get in 2ch mode.

mindbomb
6th February 2011, 01:46
I think i may have found a lavfsplitter bug.
If you double click on lavfsplitter while it is in the external filter list, and try to put in a preference for audio and subtitle tracks, they won't stick.

It does work if you go through play>filters, and set it there.

pankov
6th February 2011, 03:31
nevcairiel,
I've sent you a PM with couple of samples that don't work with your splitter.
sample_A.mkv brings an error "Cannot load specified file" when I try to add lavfsplitter in GraphStudio. The "special" thing about this file is that it has huge amount of embedded subtitles ... 40 if I remember correctly. Haali splitter doesn't work on it too but MPC's MatroskaSplitter.ax works just fine.
sample_G.mkv crashesh GraphStudio without even given an error. The "special" thing about it is that it has two "versions" of the movie in it - both Theatrical and Extended. Haali works fine with it and gives the option to switch the streams while MPC's splitter doesn't show the two streams.
I really hope that your splitter will be "the one to rule them all".

It's been a few months since the last time I used the LAVFSplitter and I thought I should give it a try one more time.
So here is my report:
Sadly, the LAVFSplitter still doesn't work in ZoomPlayer. Nevcairiel, I'm not exactly sure why this is the only splitter that doesn't work in ZP but if you find the time can you, please, test it with ZP's trial version to see if you can do anything about it or it's solely ZP's fault.
Nevertheless I did some tests with GraphStudio and I got mixed results with the above mentioned samples (nevcairiel, I can send you the links again if you happen to delete them). Sample_A still brings the same "Cannot load specified file" error. Now there is progress with Sample_G - it doesn't anymore crash GraphStudio and plays fine, but sadly, in the Stream selection menu there is no option to select the "edition". I guess you didn't find the time to add support for ordered chapters yet, right?

In general I have very high expectation from this splitter (and now the audio decoder) so I'm looking for next versions and I really do hope that it will be supported in ZoomPlayer.

nevcairiel
6th February 2011, 10:14
Editision/Ordered Chapters are not supported, and won't be for quite a while. libavformat does not support it, and its quite a complicated feature to add.

I still have your samples, i can look into the one that doesn't work at all.
How many streams does that file have exactly?

PS:
I just installed ZoomPlayer 7.00 MAX, opened some MKV file (I don't have any other MKV Splitter installed), and it uses LAVSplitter just fine.

nevcairiel
6th February 2011, 10:51
I still have your samples, i can look into the one that doesn't work at all.
How many streams does that file have exactly?

It was like 44 streams. Anyway, i disabled the maximum stream limit in ffmpeg (which is scheduled to be removed for the next ffmpeg version bump), and the file loads fine now.

bjd
6th February 2011, 11:22
If you double click on lavfsplitter while it is in the external filter list, and try to put in a preference for audio and subtitle tracks, they won't stick.

Workds for me in Vista/Mpc-Hc 1.4.1.2860 if go to View > Options > External Filters

pankov
6th February 2011, 12:08
Editision/Ordered Chapters are not supported, and won't be for quite a while. libavformat does not support it, and its quite a complicated feature to add.
I understand and will be patient. :thanks:

PS:
I just installed ZoomPlayer 7.00 MAX, opened some MKV file (I don't have any other MKV Splitter installed), and it uses LAVSplitter just fine.Now that's very strange. Can I guess that you didn't configured ZP in "Smart Play" mode?
You can change this from Options->Playback->Smart Play.
After this you can configure selected splitters/decoders for all the different format/containers.
If you'd like I can send you my full configuration so you won't bother getting to know ZP's config ... unless now that you've tried it you like it and decide to use it.

It was like 44 streams. Anyway, i disabled the maximum stream limit in ffmpeg (which is scheduled to be removed for the next ffmpeg version bump), and the file loads fine now.
Yes, there are many, but I'm very glad you've removed the limit.
:)

PS:
I just noticed a very insignificant problem with install_xxx.bat files. When you call "cd /d %~dp0" you've omit the quotes around %~dp0 and it gives an error if the path to this batch file contains spaces. In general I'm not sure why we ever need this "CD" command but I guess it doesn't hurt.

nevcairiel
6th February 2011, 12:28
Now that's very strange. Can I guess that you didn't configured ZP in "Smart Play" mode?
You can change this from Options->Playback->Smart Play.
After this you can configure selected splitters/decoders for all the different format/containers.
If you'd like I can send you my full configuration so you won't bother getting to know ZP's config ... unless now that you've tried it you like it and decide to use it.


Looks like it was in Smart Play mode on its own. Since i don't have any other MKV Splitter, it basically has no choice but to use it. But its working just fine.
The option for Matroska was pre-configure to File Source (Async.), configuring it explicitly to LAV Splitter still works.

Since it works with the players Default configuration, it really doesn't look like a problem on my end, or if it is, i have no idea what.
If the ZP author cares, he could shed some light on this.

pankov
6th February 2011, 12:39
If I'm not pushing it too much can you look one more time at ZP's configuration window and check if you have "Show Smart Play graph creation errors (useful for debugging)" enabled and probably disable "When Smart Play fails to create a graph, fall-back to DirectShow graph creation". Both settings can be found in Options->Playback->Smart Play->Settings & Black List. You need to be in "Advanced Mode" (use the button in the bottom left corner) to see this options an the whole "Settings & Black List" tab.

nevcairiel
6th February 2011, 12:47
Yeah that fails, but the error message is really not useful.

pankov
6th February 2011, 12:55
Yes, I guessed so.
I was just hoping you'll be able to somehow miraculously find a way to fix it by comparing the way ZP builds the graph in this mode vs. the default non "Smart Play" mode.
I guess I was hoping for the impossible.
btw
Can you also check the problem with AVI playback. After installing LAVFSplitter ZP can't play .avi files. I gives an error

Could not find a suitable Decoder for "[Source File: Smart Play Graph].Output"
SubTypes:
{9C53931C-7D5A-4A75-B26F-4E51654DB2C0}
{00000000-0000-0000-0000-000000000000}

which is very strange.
How is it possible that installing a filter/splitter will break other?
Can you help with this?

nevcairiel
6th February 2011, 13:11
I have no idea what that Smart Play mode does to build a graph. It seems to not behave like DirectShow at all. You should really talk to the author of ZP, you paid him afterall. Maybe he can shed some light on how Smart Play works, and what information it needs to build a graph properly.

bjd
6th February 2011, 14:08
@nevcairiel

Any plans to add support for MEDIATYPE_DVD_ENCRYPTED_PACK in lavc for ac3,dts & lpcm ?

nevcairiel
6th February 2011, 14:47
@nevcairiel

Any plans to add support for MEDIATYPE_DVD_ENCRYPTED_PACK in lavc for ac3,dts & lpcm ?

That requires a full DeCSS filter in between, which will probably not happen so soon.

mindbomb
6th February 2011, 15:53
Workds for me in Vista/Mpc-Hc 1.4.1.2860 if go to View > Options > External Filters

really? even after you restart mpc hc?

bjd
6th February 2011, 18:21
really? even after you restart mpc hc?

Yes, and that information is stored by Mpc-Hc not the splitter in the registry under HCU\Software\Gabest\Media Player Classic\Filters\[Filter No]\Merit

That requires a full DeCSS filter in between, which will probably not happen so soon.

Right, I was meaning where you open a DVD in mpc-hc and it builds a graph:

Ms DVD Navigator > Audio/Video Decoders >A/V Renderers

The DVD Navigator presents MEDIA_DVD_ENCRYPTED PACK but has the DeCSS stuff not been done by Mpc-HC first - Filters like ffdhow, AC3 filter which can connect ok, they don't have some built in DeCSS filter ?

mindbomb
6th February 2011, 19:09
i ran into the wrong file length problem again.

This time, for a .m2ts with h264 video and ac3 mono.

so it appears not to be limited to just vc-1 and truehd files.

tetsuo55
6th February 2011, 19:10
Can you provide a sample?

bjd
6th February 2011, 19:39
Can you provide a sample?

I also found with the Region B version of Commando, the main 19gb movie file mpeg2/dtshd/dts/subtitles only reports 40s as the duration.

If I create a 10s sample in TsMuxer, the time is reported correctly.

nevcairiel
6th February 2011, 19:59
Report the issue to ffmpeg, not to me. Check what ffprobe/ffplay report, if its wrong there, its not something i can fix easily.

It will be fixed once i implement better BluRay support, assuming that all these files are actually on a proper BD Disc with the full BD structure.

mindbomb
6th February 2011, 20:08
same problem as bjd.
I have something that reports itself as being 58s, instead of 23min 31s
when i create a 70s sample with tsmuxer, time is reported correctly in the sample.

and yes, they are from a bluray disc.

bjd
6th February 2011, 20:17
Check what ffprobe/ffplay report, if its wrong there, its not something i can fix easily.

ffprobe correctly reports 01:30:15.81 for the main Commando .m2ts, although it looks to be getting this information from the container rather than any of the streams. To be honest as long as the filter splits ok and plays, the times does not matter that much to me.

jmone
7th February 2011, 06:34
Great Splitter! It has really developed nicely and I've only a couple of things from testing.

The first one is that it does not seem to connect th audio track of an MPG container with a PCM track to an Audio "decoder" or "renderer". See below for:
1) Media Info dump on a sample file
2) Direct Show filter info with LAV Splitter (no audio)
3) Direct Show filter info with FileSouce & MPC Splitter (plays fine)

==========================
Media Info
General
Complete name : \\RUMPUS\Media3\Video\Test\DVD MPEG PCM.mpg
Format : MPEG-PS
File size : 254 MiB
Duration : 3mn 59s
Overall bit rate : 8 882 Kbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 2
Format profile : Main@Main
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 3mn 59s
Bit rate mode : Variable
Bit rate : 7 169 Kbps
Nominal bit rate : 8 264 Kbps
Width : 720 pixels
Height : 576 pixels
Display aspect ratio : 4:3
Frame rate : 25.000 fps
Standard : PAL
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.691
Stream size : 205 MiB (81%)

Audio
ID : 160 (0xA0)
Format : PCM
Format settings, Endianness : Big
Format settings, Sign : Signed
Muxing mode : DVD-Video
Duration : 3mn 59s
Bit rate mode : Constant
Bit rate : 1 536 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Stream size : 43.8 MiB (17%)


Direct Show Filter Info - Not working with LAV Filter
Filter Graph Info:

Filter 'Enhanced Video Renderer'
CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Host: c:\windows\syswow64\evr.dll
Input Pin 'EVR Input0'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'EVR Input1'

Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Video' of filter '\\RUMPUS\Media3\Video\Test\DVD MPEG PCM.mpg'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'EVR Input0' of filter 'Enhanced Video Renderer'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'In Text'

Filter '\\RUMPUS\Media3\Video\Test\DVD MPEG PCM.mpg'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\lavfsplitter-0.13\lavfdshowsplitter.ax
Output Pin 'Video'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'



Direct Show Filter Info - Working with File Source and MPC Splitter.
Filter Graph Info:

Filter 'ReClock Audio Renderer'
CLSID: {9DC15360-914C-46B8-B9DF-BFE67FD36C6A}
Host: c:\program files (x86)\reclock\reclock.dll
Input Pin 'In'
Connected to pin 'Out' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'Enhanced Video Renderer'
CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Host: c:\windows\syswow64\evr.dll
Input Pin 'EVR Input0'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'EVR Input1'

Filter 'ffdshow Audio Decoder'
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Output Pin 'Out'
Connected to pin 'In' of filter 'ReClock Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Input Pin 'In'
Connected to pin 'Output' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DVD_LPCM_AUDIO, Format type FORMAT_WaveFormatEx
Input Pin 'In2'

Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Output' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'EVR Input0' of filter 'Enhanced Video Renderer'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Connected to pin 'No subtitles' of filter 'MPC - Mpeg Splitter (Gabest)'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}, Format type FORMAT_None
Input Pin 'In Text 2'

Filter 'J. River Media Proxy Audio'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Audio - DVD LPCM, 48.0 kHz, 2 chn, 16 bit, 1536.0 kbit/s (0000,bd,a0)' of filter 'MPC - Mpeg Splitter (Gabest)'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DVD_LPCM_AUDIO, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DVD_LPCM_AUDIO, Format type FORMAT_WaveFormatEx

Filter 'J. River Media Proxy Video'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Video - MPEG2, Spatially Scalable Profile, Level 8, 720x576, 25.000 fps, 8264.0 kbit/s (0000,e0,00)' of filter 'MPC - Mpeg Splitter (Gabest)'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO

Filter 'MPC - Mpeg Splitter (Gabest)'
CLSID: {DC257063-045F-4BE2-BD5B-E12279C464F0}
Host: c:\temp\mpegsplitter.ax
Output Pin 'Video - MPEG2, Spatially Scalable Profile, Level 8, 720x576, 25.000 fps, 8264.0 kbit/s (0000,e0,00)'
Connected to pin 'Input' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio - DVD LPCM, 48.0 kHz, 2 chn, 16 bit, 1536.0 kbit/s (0000,bd,a0)'
Connected to pin 'Input' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DVD_LPCM_AUDIO, Format type FORMAT_WaveFormatEx
Output Pin 'No subtitles'
Connected to pin 'In Text' of filter 'ffdshow Video Decoder'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}, Format type FORMAT_None
Input Pin 'Input'
Connected to pin 'Output' of filter 'File Source (Async.)'
Major type MEDIATYPE_Stream Sub type Unknown GUID Name: {9C53931C-7D5A-4A75-B26F-4E51654DB2C0}, Format type TIME_FORMAT_NONE

Filter 'File Source (Async.)'
CLSID: {E436EBB5-524F-11CE-9F53-0020AF0BA770}
Host: c:\windows\syswow64\quartz.dll
Output Pin 'Output'
Connected to pin 'Input' of filter 'MPC - Mpeg Splitter (Gabest)'
Major type MEDIATYPE_Stream Sub type Unknown GUID Name: {9C53931C-7D5A-4A75-B26F-4E51654DB2C0}, Format type TIME_FORMAT_NONE

jmone
7th February 2011, 07:56
Here is a link to the sample MPG/PCM discussed above: http://www.megaupload.com/?d=SZZ3GPTD

nevcairiel
7th February 2011, 08:22
Thats weird, dvd-type PCM should work. I'll have a look at that sample when i get home.

jmone
7th February 2011, 09:20
Thanks still testing away - but this latest verion of your splitter is really very very good!

Another Q on Forced Subs - I've attached a mediainfo dump of a sample Blu --> MKV with forced subs muxed in and they display fine with FFDSHOW when you select them. How should LAV Splitter be configed to automatically select the subs instead of "none".

General
Unique ID : 210922638537066824643914718731675516789 (0x9EAE38F91657C6ED84C515EEBC163F75)
Complete name : X:\Output\Blu2mkv Forced Sub.mkv
Format : Matroska
File size : 18.6 GiB
Duration : 1h 52mn
Overall bit rate : 23.7 Mbps
Movie name : test
Encoded date : UTC 2011-02-07 07:59:53
Writing application : mkvmerge v4.5.0 ('Speed of Light') built on Feb 1 2011 02:10:32
Writing library : libebml v1.2.0 + libmatroska v1.1.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Muxing mode : Container profile=Unknown@0.0
Codec ID : V_MPEG4/ISO/AVC
Duration : 1h 52mn
Bit rate mode : Variable
Bit rate : 21.6 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.435
Stream size : 17.0 GiB (91%)

Audio
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Format profile : MA / Core
Codec ID : A_DTS
Duration : 1h 52mn
Bit rate mode : Variable
Bit rate : 1 561 Kbps / 1 510 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Compression mode : Lossless / Lossy
Title : DTS Master Audio
Language : English

Text
ID : 3
Format : VobSub
Muxing mode : zlib
Codec ID : S_VOBSUB
Codec ID/Info : The same subtitle format used on DVDs
Language : English

Menu
00:00:00.000 : en:00:00:00.000
00:06:22.340 : en:00:06:22.340
00:13:25.346 : en:00:13:25.346

nevcairiel
7th February 2011, 09:23
If the MKV has the forced subs flag, you can configure it to "Only Forced Subs" and set your preferred languages (or no languages, then any forced subs are choosen). If that flag is not set, you need to select "Always full subs", which will always enable one sub track matching your language.

robpdotcom
7th February 2011, 10:18
I have several mkv's with forced subs, but they never load when "Only Forced Subs" is checked. They all contain 2 subtitle streams - the normal subs are set with forced flag "no", default flag "no", and the forced subs are set with forced flag "yes" and default flag "yes".

nevcairiel
7th February 2011, 10:20
Could you create a small sample with the streams flagged like that?
I thought i tested that to work properly, but i cannot find my sample anymore.

jmone
7th February 2011, 10:45
Another one for you. There have been some bug posts about MKV not starting playback but a seek will get it playing with your splitter. In testing some Blu --> MKV rips it seems to be related to the version of MKVMerge that is used. The same rip using MKVmerge V4.3.0 has the issue, but I just redid it with V4.5.0 and these ones play fine.

jmone
7th February 2011, 11:39
Here you go - a 1 min sample with subs http://www.megaupload.com/?d=CNKNOIPG . I also have an issue where the subs stop displaying but I've posted on the FFDSHOW forum to see if they know why http://forum.doom9.org/showthread.php?p=1476180#post1476180

robpdotcom
7th February 2011, 22:19
Here's another sample - with 2 streams as I described above:
http://www.megaupload.com/?d=J2TLX3XN

jmone
8th February 2011, 09:47
I can also post the same segment in a M2TS container if that is of use.

Stebet
8th February 2011, 13:19
Short question regarding the audio codecs. I use Microsoft's Expression Encoder (EE for short) a lot but doing a 2-pass encoding of AC3 has so far been impossible due to the fact that both ac3filter and ffdshow seem to not return the same data for two-passes in a row. I don't know how common it is for these codecs to return inconsistent data for the same file when decoding the same file, but I find it weird but that seems to be the case with both ac3filter and ffdshow.

Is this something that you guys have any control over or is it completely under the control of the audio library developers?

Also, if you could test your splitter to make sure it works properly with EE that would be awesome, since EE is rather sensitive to codecs and splitters doing the slightest things abnormally.

So far I've found the MKV splitter working well with EE, but the audio codecs are not able to get EE to recognize AC3 audio inside an MKV. I haven't tested other audio codecs so far.

nevcairiel
9th February 2011, 09:15
I'm trying to figure out the video-does-not-start issue some people keep reporting.

Can someone reproduce it 100%?
If yes:
- What player?
- What decoders?
- What renderers?
- Any other filters in the graph?
- Sample it happens with?

Virtual_ManPL
9th February 2011, 10:11
Here's the main bug about it, bug # 23 (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/23)
And I added some more info as I work now on Win 7 64bit
(lol, close it accidentally second time...)

And this bug looks like it will be related to bug #29 (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/29) and bug #31 (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/31)

jmone
9th February 2011, 10:56
I'm trying to figure out the video-does-not-start issue some people keep reporting.

Can someone reproduce it 100%?
If yes:
- What player?
- What decoders?
- What renderers?
- Any other filters in the graph?
- Sample it happens with?

Sure - it is 100% repeatable if you use an older version of the MKVMerge (and/or MatroskaSplitter ?) install package to create the MKV. The other sample I provided for looking at subtitles were created with V4.5 of MKVMerge and they play fine, it seems to be an issue with files created with earlier versions where they either:
1) get "stuck" at the start unless you do a seek,
2) seem to play but there is video or sound, or
3) play with video but no sound

Yet, it is fine if once playing you seek back to the start - it is just an issue the first time you try to play it (as MC remembers the playback position it is fine post the first play). Here is a 30sec clip - let me know if you need more details or other samples etc http://www.megaupload.com/?d=TSBWNB6A - for me this sample plays but without sound till I do a seek. FYI - The full version I cut this first 30sec off will not play at all till an initial seek is done. There must be a difference in the header used by V4.5 of MKVMerge...Good Luck!


Media Info Dump
General
Unique ID : 181394820644180377279347843185022479491 (0x88775F26A6FFB6F0BD3E260EC46A2C83)
Complete name : G:\Media3\Video\Test\Not working.mkv
Format : Matroska
File size : 60.1 MiB
Duration : 30s 635ms
Overall bit rate : 16.5 Mbps
Movie name : District 9 (2009)
Encoded date : UTC 2011-02-09 09:32:07
Writing application : mkvmerge v4.0.0 ('The Stars were mine') built on Jun 6 2010 16:18:42
Writing library : libebml v1.0.0 + libmatroska v1.0.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Muxing mode : Container profile=Unknown@0.0
Codec ID : V_MPEG4/ISO/AVC
Duration : 30s 656ms
Bit rate mode : Variable
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive

Audio
ID : 2
Format : FLAC
Format/Info : Free Lossless Audio Codec
Codec ID : A_FLAC
Duration : 30s 635ms
Bit rate mode : Variable
Channel(s) : 6 channels
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Title : Flac
Writing library : libFLAC 1.2.1 (UTC 2007-09-17)
Language : English

Text
ID : 3
Format : VobSub
Muxing mode : zlib
Codec ID : S_VOBSUB
Codec ID/Info : The same subtitle format used on DVDs
Language : English

Menu
00:00:00.000 : en:00:00:00.000



Filter Info from JR Media Center
Filter Graph Info:

Filter 'ReClock Audio Renderer'
CLSID: {9DC15360-914C-46B8-B9DF-BFE67FD36C6A}
Host: c:\program files (x86)\reclock\reclock.dll
Input Pin 'In'
Connected to pin 'Out' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'Enhanced Video Renderer'
CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Host: c:\windows\syswow64\evr.dll
Input Pin 'EVR Input0'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'EVR Input1'

Filter 'ffdshow Audio Decoder'
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Output Pin 'Out'
Connected to pin 'In' of filter 'ReClock Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Input Pin 'In'
Connected to pin 'Audio' of filter 'lavf dshow source filter'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {1541C5C0-CDDF-477D-BC0A-86F8AE7F8354}, Format type FORMAT_WaveFormatEx
Input Pin 'In2'

Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Video' of filter 'lavf dshow source filter'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'EVR Input0' of filter 'Enhanced Video Renderer'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Connected to pin 'Subtitle' of filter 'lavf dshow source filter'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {F7239E31-9599-4E43-8DD5-FBAF75CF37F1}, Format type Unknown GUID Name: {F7239E31-9599-4E43-8DD5-FBAF75CF37F1}
Input Pin 'In Text 2'

Filter 'lavf dshow source filter'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\lavfsplitter-0.13\lavfdshowsplitter.ax
Output Pin 'Video'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'In' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {1541C5C0-CDDF-477D-BC0A-86F8AE7F8354}, Format type FORMAT_WaveFormatEx
Output Pin 'Subtitle'
Connected to pin 'In Text' of filter 'ffdshow Video Decoder'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {F7239E31-9599-4E43-8DD5-FBAF75CF37F1}, Format type Unknown GUID Name: {F7239E31-9599-4E43-8DD5-FBAF75CF37F1}

bjd
9th February 2011, 11:48
I can only replicate this with certain mkv's on Vista/XP providing the splitter connects directly to ffdshow only. I do not have this problem with Windows 7 on identical playback configurations.

Splitting the mkv to provide a 10 second sample cures the issue frustratingly.

I have virtually moved away from ffdshow now lavc has no DRC, but do fall back to it if opening an .ifo or DVD in mpc-hc as lavc only caters for MEDIATYPE_Audio not MEDIATYPE_MPEG2_PACK/PES or DVD_ENCRYPTEDPACK even though I am fairly certain this is just a placeholder container as the DeCSS has been done by Mpc-Hc, or when playing a non DeCSS disc, MEDIATYPE_DVD_ENCRYPTEDPACK is still presented.

jmone
9th February 2011, 12:17
The lavc audio decoder is interesting. What formats does it currently support?

nevcairiel
9th February 2011, 12:20
The lavc audio decoder is interesting. What formats does it currently support?

If used with LAV Splitter, basically all audio formats ffmpeg supports (thats alot).
With any other splitter, it supports all the common formats, DTS, (E)AC3, AAC, MP1/2/3, TrueHD*, QT PCM types, FLAC, Ogg Vorbis (not 100% compatible with all splitters yet), LPCM

*TrueHD is not supported when used with the MPC-HC MPEG Splitter, because it doesn't properly identify TrueHD as such, and trys to send it as AC-3.

jmone
9th February 2011, 12:23
If the MKV has the forced subs flag, you can configure it to "Only Forced Subs" and set your preferred languages (or no languages, then any forced subs are choosen). If that flag is not set, you need to select "Always full subs", which will always enable one sub track matching your language.

The issue is that it seems to display the subs for a second or so then it just stops showing them till you turn them off then on again (then repeat process). If I use Haali then they seem to be fine (note: Haali loads VOBSUB as a seperate filter while LAVSplitter is just using FFDSHOW and I've received no further insight from the post over in that thread)
Thanks
Nathan

jmone
9th February 2011, 12:27
If used with LAV Splitter, basically all audio formats ffmpeg supports (thats alot).
With any other splitter, it supports all the common formats, DTS, (E)AC3, AAC, MP1/2/3, TrueHD*, QT PCM types, FLAC, Ogg Vorbis (not 100% compatible with all splitters yet), LPCM

*TrueHD is not supported when used with the MPC-HC MPEG Splitter, because it sucks.

Thanks - I'll do some more testing and report back. I'm using JR Media Center as my Direct Show player and I can select what combination of filters for it to try to build a graph with. With a quick play, I'm getting some working really well, some where it is not connecting, and some where it is hanging. I'll give a fuller update tommorow with luck.

Ger
9th February 2011, 19:34
I'm trying to figure out the video-does-not-start issue some people keep reporting.

Can someone reproduce it 100%?
If yes:
- What player?
- What decoders?
- What renderers?
- Any other filters in the graph?
- Sample it happens with?

Since jmone provided mkv info, I've just sent an avi sample with the same issue by PM.

Forgot to mention renderers in the PM. I've tested both EVR Custom and EVR Sync. Both have the same issue. No other unusual filters. Decoders doesn't seem to matter.

Only seeking, starting from a non-zero position or using another splitter fixes the issue.

BatKnight
9th February 2011, 20:36
If used with LAV Splitter, basically all audio formats ffmpeg supports (thats alot).
With any other splitter, it supports all the common formats, DTS, (E)AC3, AAC, MP1/2/3, TrueHD*, QT PCM types, FLAC, Ogg Vorbis (not 100% compatible with all splitters yet), LPCM

*TrueHD is not supported when used with the MPC-HC MPEG Splitter, because it doesn't properly identify TrueHD as such, and trys to send it as AC-3.
I've also noticed that m2ts files with DTS-HD MA tracks spllitted by LAVSplitter and decoded by LAVadio just outputs bursts of static noise. I don't know if MKV with DTS-HD MA also does the same, because I don't have any file that way.
But I do know that MKV with regular DTS plays ok.

These m2ts files with DTS-HD MA were from Blurays.

Can anyone also reproduce this?

Bat

HomeY_
9th February 2011, 20:46
These m2ts files with DTS-HD MA were from Blurays.

Can anyone also reproduce this?

Bat

I can't. I've been testing with Blu-rays and all movies with DTS-HD output LPCM here.

Sebastiii
9th February 2011, 21:18
I'm trying to figure out the video-does-not-start issue some people keep reporting.

Can someone reproduce it 100%?
If yes:
- What player?
- What decoders?
- What renderers?
- Any other filters in the graph?
- Sample it happens with?

Hi,
- Player Mediaportal.
- FFDShow Video Decoder / Microsoft DTV Video Or other.
- EVR Renderer.
- Screenshot link (Audio Switcher or Not is the same).

To make video appear -> Needed Seek or Pause/Play or Switch Audio Stream. (it seems related arround Audio Stream inside Lav but i'm not sure @ 100%)

Sometimes it's start or start after a few second between 5 to 60.
With MPC Splitter (MKV or MPEG) -> all always start
Also all is always working in Graphstudio.

Really hard to find why :(
Seb.

Screenshot1 (http://img227.imageshack.us/img227/9947/mplavnoscreen.jpg)

Screenshot1 (http://img706.imageshack.us/img706/5873/mplavnoscreen2.jpg)

mindbomb
10th February 2011, 01:54
I've also noticed that m2ts files with DTS-HD MA tracks spllitted by LAVSplitter and decoded by LAVadio just outputs bursts of static noise. I don't know if MKV with DTS-HD MA also does the same, because I don't have any file that way.
But I do know that MKV with regular DTS plays ok.

These m2ts files with DTS-HD MA were from Blurays.

Can anyone also reproduce this?

Bat

are you sure you were using lavfsplitter?

I think i experienced this with the mpc internal splitter.

jmone
10th February 2011, 06:21
Did some testing of the lavc audio decoder and again - looks like a bunch of good work that has resulted in a solid decoder. The following were played from a bunch of different test files in ACI, TS, M2TS, MKV, and MPG containers and the tracks all played well with good lipsync. The following outlines the original Audio Codec --> lavc output (as reported by Reclock). The only filters used in the test were lavf Source Filter --> ffdshow Video Decoder, lavc Audio Decoder --> madVR Video Renderer, Reclock Audio Renderer.

48KHz/16Bit AC3 --> 48KHz PCM IEEE Float
48KHz True HD --> 48KHz/24Bit PCM

48KHz/20Bit DTS --> 48KHz PCM IEEE Float
48KHz/24Bit DTSMA --> 48KHz PCM IEEE Float
96KHz/24Bit DTSMA --> 48KHz PCM IEEE Float

48KHz/16Bit PCM --> 48KHz/16Bit PCM
48KHz/24Bit PCM --> 48KHz/24Bit PCM
96KHz/24Bit PCM --> 96KHz/24Bit PCM

44.1KHz/16Bit FLAC --> 44.1KHz/16Bit PCM
48KHz/24Bit FLAC --> 48KHz/24Bit PCM

44.1KHz/16Bit MP2 --> 44.1KHz/16 Bit PCM
44.1KHz MP3 --> 44.1KHz PCM IEEE Float
48KHz/4Bit ADPCM --> 48KHz/16 Bit PCM

From these results I can conclude that the lavc audio decoder is capable of outputting high bit rate (eg 96khz) and sample rate (24 bit) multi channel PCM streams. What I am unsure of is where the output is IEEE Float what internal bit depth was used AND if if the full DTS-MA was decoded or just the DTS "Core". If it is only decoding the Core (which I would expect as to my knowledge there is no open source DTS-MA decoder), can we have an option to disable this support so we can load instead the Arcsoft HD Audio decoder to handle DTS-MA?

Thanks
Nathan

jmone
10th February 2011, 06:45
Thanks - I'll do some more testing and report back. I'm using JR Media Center as my Direct Show player and I can select what combination of filters for it to try to build a graph with. With a quick play, I'm getting some working really well, some where it is not connecting, and some where it is hanging. I'll give a fuller update tommorow with luck.

FYI - If I load DirectVobSub the subs stay on. They only "disapper" when just using the subs option in FFDSHOW.

nevcairiel
10th February 2011, 08:06
I might have figured out the cause of the videos not starting. The MPC-HC splitters all have some funny code to interpolate timestamps when none exist, and i didnt implement anything like that yet. The files i tested all seem to have no proper timestamps on the first few video frames, thus causing the renderer to fail, as it doesnt know when to show them.

Going to investigate some more.


From these results I can conclude that the lavc audio decoder is capable of outputting high bit rate (eg 96khz) and sample rate (24 bit) multi channel PCM streams. What I am unsure of is where the output is IEEE Float what internal bit depth was used AND if if the full DTS-MA was decoded or just the DTS "Core". If it is only decoding the Core (which I would expect as to my knowledge there is no open source DTS-MA decoder), can we have an option to disable this support so we can load instead the Arcsoft HD Audio decoder to handle DTS-MA?

It only decodes the Core (as you can see, its the only format in your test that comes out as lower sample rate as the input, core only has 48khz). There will be options in the future to disable certain formats.

All the decoders outputting float actually decode in full 32-bit float, there is no conversion being done.
Most lossy decoders actually work internally in float, its just a matter of disabling the conversion to int16 that ffmpeg has setup for all codecs. Lossless decoders (TrueHD, FLAC) decode in integer, as you can see in the output as well.

I've also noticed that m2ts files with DTS-HD MA tracks spllitted by LAVSplitter and decoded by LAVadio just outputs bursts of static noise. I don't know if MKV with DTS-HD MA also does the same, because I don't have any file that way.
But I do know that MKV with regular DTS plays ok.

These m2ts files with DTS-HD MA were from Blurays.

Can anyone also reproduce this?

Bat

I know that AC3Filter does not like DTS-HD MA streams, or at least did not use to like them. The MPC-HC splitters had some ugly code to rip out the HD extensions. I don't think its my job to fix broken decoders, so i don't have that.

Are you sure AC3Filter didnt sneak into the playback somewhere?

jmone
10th February 2011, 09:12
I might have figured out the cause of the videos not starting. The MPC-HC splitters all have some funny code to interpolate timestamps when none exist, and i didnt implement anything like that yet. The files i tested all seem to have no proper timestamps on the first few video frames, thus causing the renderer to fail, as it doesnt know when to show them.

Going to investigate some more.

The thing that gets me is is you go a seek back to the begining these "odd" files play.

It only decodes the Core (as you can see, its the only format in your test that comes out as lower sample rate as the input, core only has 48khz). There will be options in the future to disable certain formats.
Great news!

Thanks
Nathan

jmone
10th February 2011, 09:32
Dumb Q - you have a ffmpeg based spliiter, AV, and you by any change working on a Direct Show Video Decoder as well?

bjd
10th February 2011, 10:59
I might have figured out the cause of the videos not starting.

Appreciate the time and effort going on into developing these excellent filters further

I've also noticed that m2ts files with DTS-HD MA tracks spllitted by LAVSplitter and decoded by LAVadio just outputs bursts of static noise.

Tried on several .m2ts files and cannot replicate.

Sebastiii
10th February 2011, 11:34
I might have figured out the cause of the videos not starting. The MPC-HC splitters all have some funny code to interpolate timestamps when none exist, and i didnt implement anything like that yet. The files i tested all seem to have no proper timestamps on the first few video frames, thus causing the renderer to fail, as it doesnt know when to show them.

Going to investigate some more.


Hi :)

It's really nice,
Thanks,
Seb

nevcairiel
10th February 2011, 13:50
Dumb Q - you have a ffmpeg based spliiter, AV, and you by any change working on a Direct Show Video Decoder as well?

Not quite yet. Maybe one day i will. But video decoding is much more complex then audio decoding. ;)

bjd
10th February 2011, 14:01
can we have an option to disable this support so we can load instead the Arcsoft HD Audio decoder to handle DTS-MA?

If you are using Mpc-Hc

http://forum.doom9.org/showthread.php?p=1475512#post1475512

nevcairiel
10th February 2011, 16:32
I managed to fix two seperate issues that caused some files not to play.

One was related to the seeking code. The seek logic preferred to seek to a keyframe, but in some files seeking to time 0 does not work when the first frame starts with a slightly different time, but ffmpeg didn't set the proper start time. This seemed to primarily affect AVI files.
The second issue was treating timestamps of the value 0 as "broken" and nulling them out. Now if a file happens to start with exactly time 0 (not many do, actually), it would null this value out, and the renderer would receive an invalid time.

I'll test some more samples, maybe there are more bugs in there somewhere.

nevcairiel
10th February 2011, 17:04
LAV DirectShow Filters 0.14
General
- The project and filters have been renamed slightly for consistency

LAV Splitter
- The settings have been moved to a different place in the Registry. You will need to re-apply them.
- Improved MPEG-TS duration calculations.
- The settings will now always be properly saved and loaded.
- Disabled the limit of 20 Streams per file.
- Fixed two seperate issues that caused files to not start playing.

LAV Audio Decoder
- Property Page for Configuration and Status has been added
- Dynamic Range Compression is now off by default, but configurable.
- Media Type creation has been improved, fixes filter connection issues.
- Processing of UINT8 Samples has been fixed.
- Fixed a crash with some Audio codecs.
- Fixed Channel Order for 7.1 Streams
- Increased the decoders Merit
- Added support for decoding QT PCM

Known issues:
- TrueHD in m2ts files cannot be decoded by LAV Audio when using the MPC-HC internal MPEG Splitter. (This will most likely never be fixed, the splitter is just doing it wrong).

Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.14.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.14-x64.zip)

First off, like mentioned above:
The registry key for LAVSplitter has changed. I did not bother to write some migration logic, because there is only like 3 settings. Remember to redo them if you had something specific in there.
Also, the files have been renamed again for consistency, so remember to register the filters again with the included .bat files. (I should do an installer, huh)

This version adds a property page for the Audio Decoder. The main purpose is to get some statistics displayed, which will hopefully help in debugging.
Additionally, you can configure DRC on there.
Requantization, and therefor disabling of certain output formats, has been moved to the next version.

I hope most of the "does not start" issues have been resolved!

bjd
10th February 2011, 17:07
:thanks::thanks:

Stebet
10th February 2011, 17:42
A small issue with the audio decoder.

It doesn't work with Expression Encoder and AC3, EE reports file type not supported.

EE works fine with AC3Filter and ffdshow (except for the fact that they don't always return exatcly the same data so 2-pass encoding using AC3 as source fails).

nevcairiel
10th February 2011, 17:52
A small issue with the audio decoder.

It doesn't work with Expression Encoder and AC3, EE reports file type not supported.

EE works fine with AC3Filter and ffdshow (except for the fact that they don't always return exatcly the same data so 2-pass encoding using AC3 as source fails).

I can only guess that the EE does not like float input from the decoder. To confirm this theory, you could try the following:
In ffdshow config, turn off every output format, except Floating Point, and see if it still connects. If it doesn't, thats it. ;)

Stebet
10th February 2011, 18:02
Does the audio filter require ffdshow to be installed? Or am I misunderstanding something?

Also, another bug, and a rather serious one I think. There seems to be a big memory leak in the splitter for large MKVs.

Expression Encoder errored out pretty fast on a big 2 hour long 1080p MKV (H.264 video, AAC audio) with an out of memory error on the very first pass (I have 8GB ram, but EE is a 32bit process I think).

That does not happen with Haali's Matroska splitter (EE stays at around 400MBs)

adam777
10th February 2011, 18:03
Thanks for the new version, nevcairiel.
A small, cosmetic bug - properties tab (http://img27.imageshack.us/img27/7923/propg.png) should read "LAV Splitter", not "LAVFSplitter".

Ger
10th February 2011, 18:16
Yes, thanks indeed. I guess it's LAVS and LAVAD (or LAVA?) for short now then. ;)

All of my previously affected AVIs start normally now. :)
Don't have any mkv/other files with the black screen issue so I'll leave the feedback on that to someone else.

On another note, if you want another "rare material challenge", I do actually have a weirdly muxed mov (http://www.multiupload.com/UGKOVHFRU8) with a black screen issue, but that is not related to the newly fixed stuff. The issue in this case is that there are several video tracks listed (mjpeg, qtrle and mpeg4), and the one selected by default by the splitter (mjpeg) doesn't seem to contain any actual video, so manually changing to the highest bit rate video track (mpeg4) shows the video. I guess one or both of those listed low bit rate video tracks are actually text (shown when this file is started with the MPC-HC splitter).

Maybe the splitter can be changed to prioritize mpeg4 over mjpeg and qtrle as the default video track, or prioritize the highest bit rate video track if that makes more sense?

Another issue is that all tracks, audio, video and subs seem to be listed twice by LAVS. MediaInfo only lists them once.

FWIW, the header says "Compiled by Revver Inc. TMS v2.0", whatever that is.

Virtual_ManPL
10th February 2011, 18:29
LAVFSplitter 0.14 fixed bug #23 (https://github.com/Nevcairiel/LAVFSplitter/issues/closed#issue/23) and bug #29 (https://github.com/Nevcairiel/LAVFSplitter/issues/closed#issue/29)
Thank you nevcairiel !!! :devil:

Now can you look in bug #31 (https://github.com/Nevcairiel/LAVFSplitter/issues/#issue/31) ?
Looks similar, but it wasn't fixed in 0.14, odd...

Can someone confirm this also ?

bjd
10th February 2011, 18:35
Can confirm the .mkv LAV Splitter -> ffdshow Audio no play issue under Vista/XP I was experiencing in 0.14 is fixed :).

Ger
10th February 2011, 18:51
One more observation. All of the TS samples I've recorded myself still have the correct duration in 0.14, but the 44 second Portugese sample from here (http://sourceforge.net/tracker/index.php?func=detail&aid=3133869&group_id=86862&atid=581181) now gets a 20+ hours duration in LAVS 0.14.

I'm 99% sure the duration was correct in 0.13 with this sample, so I think this is a regression in 0.14.

EDIT: Unlike LAVS, MediaInfo actually lists several video tracks with this sample. Maybe that's the reason for the miscalculation.

EDIT2: Aha. The bug report says it's actually a recording of a full DVB-T mux, not just a single channel, so I guess there really are multiple video tracks in there then. They just don't appear in LAVS.

EDIT3: Sorry about the repeated edits. Yes, I can change between the video tracks with the MPC-HC splitter. Black screen on the last one, but I guess that could possibly be an encrypted channel.

jmone
10th February 2011, 20:39
nevcairiel - great stuff and thank you for the very timely response:
1) The file not starting issue is Fixed for me on Blu-muxs in MKV, M2TS etc
2) The Rename makes sence
3) The filter config page for the LAV Audio Splitter is great as we can see what is happening

I've got some more testing to do on:
- DVB-T recordings - seems to have some issues not playing (I see another post on this so I'll test properly and report back)
- Disappearing Subs when just using FFDSHOW but works fine with DirectVobSub

Thanks
Nathan

jmone
10th February 2011, 20:45
If you are using Mpc-Hc

http://forum.doom9.org/showthread.php?p=1475512#post1475512

Thanks for that (I'm actually using JR's Media Center). While I can change merits, I'm hoping for a selectable option to enable/disable support in the new filter diag box to keep it user friendly for the "average" user. That said....anything that works for now is a good thing as I can always document how to do it and post it on the JR forum!

The "real" answer of course if for a Clever Crow to workout the DTS-MA code....

nevcairiel
10th February 2011, 20:52
One more observation. All of the TS samples I've recorded myself still have the correct duration in 0.14, but the 44 second Portugese sample from here (http://sourceforge.net/tracker/index.php?func=detail&aid=3133869&group_id=86862&atid=581181) now gets a 20+ hours duration in LAVS 0.14.

I'm 99% sure the duration was correct in 0.13 with this sample, so I think this is a regression in 0.14.

EDIT: Unlike LAVS, MediaInfo actually lists several video tracks with this sample. Maybe that's the reason for the miscalculation.

EDIT2: Aha. The bug report says it's actually a recording of a full DVB-T mux, not just a single channel, so I guess there really are multiple video tracks in there then. They just don't appear in LAVS.

EDIT3: Sorry about the repeated edits. Yes, I can change between the video tracks with the MPC-HC splitter. Black screen on the last one, but I guess that could possibly be an encrypted channel.

Its probably multiple programs then. I do not handle those fully yet.

bjd
10th February 2011, 21:26
can also confirm the 32bit int DVD LPCM issue is also resolved, and reclock reports 24/96 :)

Plutotype
10th February 2011, 23:18
Hi newcairel,
:thanks:

It looks like the major bugs have been fixed. Regarding the splitter, the mpeg-ts file lenght problem is still present though, maybe you will look into it later.

I would like to ask, is it possible to assign some keyboard keys in MPC-HC to change the audio tracks at the splitter during the playback?

Thanks
Plutotype

pankov
11th February 2011, 00:17
nevcairiel,
I like the new filter/file names but I have to report that both uninstall_xxx.bat files are not working in the v0.14 zip. It's not a problem for me, cause I manually edited them and everything is fine now, but nevertheless it'll be nice to fix it for the next version
;)

jmone
11th February 2011, 02:54
nevcairiel, here is a link to two sample DVB-T recordings: http://www.megaupload.com/?d=3FB75RIH
1) "MPEG MPEG.TS": SD (576i PAL) Channel broadcasting MPEG Video and Audio. Plays fine with both Haali and LAV Splitter
2) "MPEG DD.TS": HD (1080i PAL) MPEG Video and DD Audio. Plays fine with Haali, but Crashes or Plays with no Audio / Video with LAV Splitter

Here is an example of the Filters used when it plays with no Audio or Video
Filter Graph Info:

Filter 'ReClock Audio Renderer'
CLSID: {9DC15360-914C-46B8-B9DF-BFE67FD36C6A}
Host: c:\program files (x86)\reclock\reclock.dll
Input Pin 'In'
Connected to pin 'Out' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'Enhanced Video Renderer'
CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Host: c:\windows\syswow64\evr.dll
Input Pin 'EVR Input0'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'EVR Input1'

Filter 'ffdshow Audio Decoder'
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Output Pin 'Out'
Connected to pin 'In' of filter 'ReClock Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Input Pin 'In'
Connected to pin 'Output' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00000055-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Input Pin 'In2'

Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Video Output 1' of filter 'Microsoft DTV-DVD Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_NV12, Format type FORMAT_VideoInfo2
Output Pin 'Out'
Connected to pin 'EVR Input0' of filter 'Enhanced Video Renderer'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'In Text'

Filter 'J. River Media Proxy Audio'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Audio' of filter 'LAV Splitter'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00000055-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00000055-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx

Filter 'Microsoft DTV-DVD Video Decoder'
CLSID: {212690FB-83E5-4526-8FD7-74478B7939CD}
Host: c:\windows\syswow64\msmpeg2vdec.dll
Input Pin 'Video Input'
Connected to pin 'Output' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Input Pin 'Subpicture Input'
Output Pin 'Video Output 1'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_NV12, Format type FORMAT_VideoInfo2
Output Pin '~Line21 Output'

Filter 'J. River Media Proxy Video'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Video' of filter 'LAV Splitter'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Output'
Connected to pin 'Video Input' of filter 'Microsoft DTV-DVD Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO

Filter 'LAV Splitter'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\lavfilters-0.14\lavsplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_MPEG2_VIDEO, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'Input' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00000055-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx

jmone
11th February 2011, 03:51
There will be options in the future to disable certain formats.

One suggestion would be to allow the user to select for each format between:
* Decode (my prefered option)
* Passthrough (the bitstreamers would love this)
* Disable (eg when you want to decode with another filter like with DTS-HD going to the Arcsoft HD Audeio Decoder)

nevcairiel
11th February 2011, 08:17
Bitstreaming will not be done in the audio decoder. I will implement that in the splitter. Its basically a muxer task, not a decoder task, and its alot easier to implement in there.

jmone
11th February 2011, 08:34
Fine with me...which ever filter makes sence.

pankov
11th February 2011, 10:39
nevcairiel,
when you say that you'll implement the bitstreaming in the splitter what exactly do you mean?
Will this be another media type/subtype?
I'm a little concerned how will this work in ZoomPlayer's Smart Build situation, which if you forget about the current issue with LAV Splitter has been great feature for the years past.

nevcairiel
11th February 2011, 10:57
There will be a configuration option in the splitter to enable output of AC3, DTS(-HD), TrueHD formats in IEC 61937 format. That means, the splitter would directly connect to the audio renderer, and directly send the compressed audio out to the sound card for bitstreaming. Just the decoder is skipped. Not much different from PCM audio, no decoder needed.

jmone
11th February 2011, 11:11
From my own POV - I want to decode all audio...I just wish that some bright spark is working on decoding DTS-HD (the next best is I have the hacked Arcsoft HD Audio filter installed, so I just need it to play nice with the LAV decoder / splitter)

jmone
11th February 2011, 11:27
I still don't get the forced subs being selected correctly. I have a test MKV where I mux a single PGS/SUP stream as both "Default" and "Forced" with Language as eng (English) in mkbmerge GUI V4.5.0. I have LAV Splitter set to Subtitles = "eng" and Subtitle Selection Mode as "Only Forced Subs" with "Only with matching language" unchecked.

Despite this LAV Splitter selects No Subs as the default (see pic). It all works fine if I manually change the stream to select the subs. Any ideas what I'm doing wrong?

nevcairiel
11th February 2011, 11:30
Does the Stream selection list show the forced flag on the appropriate stream? If not, it just did not figure out that the stream is forced. If it shows it, thats just a bug, and i'll fix it.

(Also, the image won't be approved for some hours, maybe even days)

jmone
11th February 2011, 11:40
Does this http link work better?
http://forum.doom9.org/attachment.php?attachmentid=12005&d=1297420045

jmone
11th February 2011, 11:41
Let me know if you want a 30 sec sample uploaded

robpdotcom
11th February 2011, 12:12
Does the Stream selection list show the forced flag on the appropriate stream? If not, it just did not figure out that the stream is forced. If it shows it, thats just a bug, and i'll fix it.

Not sure if this helps:

I haven't had a chance to test with 0.14, but with 0.13 it did show the forced flag - it just didn't select the stream.

Virtual_ManPL
11th February 2011, 16:28
Try to remove 2 folder keys with LAV name in registry, because now splitter create new key folder with modified name. Works fine here now, when I do that.

robpdotcom
11th February 2011, 19:27
I haven't had a chance to test with 0.14, but with 0.13 it did show the forced flag - it just didn't select the stream.

Tested with 0.14.... same result:


http://img140.imageshack.us/img140/4720/subtest.th.png (http://img140.imageshack.us/i/subtest.png/)

My settings:

http://img573.imageshack.us/img573/2655/subtest2.th.png (http://img573.imageshack.us/i/subtest2.png/)

nevcairiel
11th February 2011, 20:03
If it shows the [forced] flag after the name, all is good on that side, and the selection is just bugged. I'll fix it.

jmone
12th February 2011, 01:51
I've just did more test recording into TS format of a bunch of DVB-T (using JR Media Center) and tested their playback and can group them as follows (with very short sample files here http://www.megaupload.com/?d=Y0JL82MK ):

* SD (720 or 704x576i MPEG2) / 2CH MPEG1 Audio (sample file SD_MPEG): Plays fine with LAV and Haali
* HD (1440x576i MPEG2) / 2.0 or 5.1CH DD Audio (sample file HD_DD): Plays fine with Haali but no Video with LAV (a seek will bring up a single still frame).

FYI - These TS files are full of DVB-T PID, TXT steams etc and can be "cleaned-up" by remuxing with tsMuxeR

Files marked as MPEG-TS (No PAT/PMT): These ones don't play at with either Haali or LAV and can not be opened in tsMuxeR (they will play fine in MPC-HC using the MPC - Mpeg Source (Gabest) splitter). I'm guessing but the lack of a PAT/PMT is giving issues to recognise what the streams are in the container, even though there is normally only a single Video / Audio and no text streams (http://en.wikipedia.org/wiki/MPEG_transport_stream). Sample file is called SD_MPEG_NoPAT_PMT.TS

Thanks
Nathan

jmone
12th February 2011, 05:22
Sorry in advance for the vague nature of this one. I've HD-DVD converted to a Blu-ray structure using Clown BD (eac3to and tsmuxer front end). The resultant 00000.m2ts file is 2h 21mn long (according to Media Info), and 2:21:00 when using the Haali Splitter, yet when using LAV Splitter it is reported as 4mn :29sec. While it will play through to the end there is no way to seek anywhere post the 4:29sec mark. Sorry I can not provide a sample (or it will be less than the 4:29 - which seems a very odd number to me).

Media Info if that helps
General
ID : 1 (0x1)
Complete name : X:\Output\BDMV\STREAM\00000.m2ts
Format : BDAV
Format/Info : Blu-ray Video
File size : 20.7 GiB
Duration : 2h 21mn
Overall bit rate : 21.0 Mbps
Maximum Overall bit rate : 35.5 Mbps

Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : VC-1
Format profile : AP@L3
Codec ID : 234
Duration : 2h 21mn
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy

Audio
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Format profile : TrueHD / Core
Mode extension : CM (complete main)
Muxing mode : Stream extension
Codec ID : 131
Duration : 2h 20mn
Bit rate mode : Variable / Constant
Bit rate : Unknown / 640 Kbps
Maximum bit rate : 3 042 Kbps / 640 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossless / Lossy
Language : English

Text #1
ID : 4608 (0x1200)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Language : English

Text #2
ID : 4609 (0x1201)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Language : English

jmone
12th February 2011, 06:27
LAV Audio decoder does not like it when you change audio format without rebuilding a new graph. Eg if you switch a TV stream from say MPEG to DD, LAV Audio Decoder just plays the last audio frame(s) over and over till you switch back. In comparison FFDSHOW Audio goes "silent", but AC3 Filter handles the dynamic change just fine.

nevcairiel
12th February 2011, 10:34
LAV Audio decoder does not like it when you change audio format without rebuilding a new graph. Eg if you switch a TV stream from say MPEG to DD, LAV Audio Decoder just plays the last audio frame(s) over and over till you switch back. In comparison FFDSHOW Audio goes "silent", but AC3 Filter handles the dynamic change just fine.

With what source filter did you do that? I tried with several filters, and i couldn't produce any issues.

Sorry in advance for the vague nature of this one. I've HD-DVD converted to a Blu-ray structure using Clown BD (eac3to and tsmuxer front end). The resultant 00000.m2ts file is 2h 21mn long (according to Media Info), and 2:21:00 when using the Haali Splitter, yet when using LAV Splitter it is reported as 4mn :29sec. While it will play through to the end there is no way to seek anywhere post the 4:29sec mark. Sorry I can not provide a sample (or it will be less than the 4:29 - which seems a very odd number to me).


BluRay m2ts are known to have that problem. Its a bug in ffmpeg, nothing i can do.

In general, avformat has many issues with MPEG-TS files that are non-standard. This includes BluRay files, which are not standard mpeg transport streams in the common sense, or files done by "weird" muxers. Sadly the maintainers of the mpegts demuxer in ffmpeg seem to rather favor their stupid rules of sticking to the spec, rather then supporting more files.

Sadly, MPEG-TS is such a complicated format, that i wouldn't know where to get anyother easy to use demuxer library that i could just plug in there. People keep reporting that the VLC MPEG-TS demuxer is generally doing a better job, maybe eventually i could implement that one. Sadly VLC has it tightly integrated into VLC itself, so it would be quite a task to rip it out.

For BluRay structures, there is always libbluray which i plan to implement at some point.

jmone
12th February 2011, 11:35
With what source filter did you do that? I tried with several filters, and i couldn't produce any issues.
It is J Rivers own Media Center splitter that they use for live TV playback (I can put you in touch with the devs if you want to find out more on this)

BluRay m2ts are known to have that problem. Its a bug in ffmpeg, nothing i can do.

In general, avformat has many issues with MPEG-TS files that are non-standard. This includes BluRay files, which are not standard mpeg transport streams in the common sense, or files done by "weird" muxers. Sadly the maintainers of the mpegts demuxer in ffmpeg seem to rather favor their stupid rules of sticking to the spec, rather then supporting more files.

Sadly, MPEG-TS is such a complicated format, that i wouldn't know where to get anyother easy to use demuxer library that i could just plug in there. People keep reporting that the VLC MPEG-TS demuxer is generally doing a better job, maybe eventually i could implement that one. Sadly VLC has it tightly integrated into VLC itself, so it would be quite a task to rip it out.

For BluRay structures, there is always libbluray which i plan to implement at some point.

OK - Thanks, at least it is a known issue. The odd thing is that it is not consistant as the following was created exactly the same way (but from an original Blu-ray over a HD-DVD) and it shows the timestamps correctly. I'll try another HD-DVD conversion to see if that is the issue or if it is related to the VC-1 over x264 stream....Go figure!

Filter Graph Info:

Filter 'J. River Audio Renderer'
CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
Host:
Input Pin 'In'
Connected to pin 'XForm Out' of filter 'LAV Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'Enhanced Video Renderer'
CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Host: c:\windows\syswow64\evr.dll
Input Pin 'EVR Input0'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'EVR Input1'

Filter 'LAV Audio Decoder'
CLSID: {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}
Host: c:\users\mum and dad\downloads\lavfilters-0.14\lavaudio.ax
Input Pin 'XForm In'
Connected to pin 'Output' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx
Output Pin 'XForm Out'
Connected to pin 'In' of filter 'J. River Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Output' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'EVR Input0' of filter 'Enhanced Video Renderer'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YUY2, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Connected to pin 'Subtitle' of filter 'LAV Splitter'
Major type MEDIATYPE_Text Sub type TIME_FORMAT_NONE, Format type TIME_FORMAT_NONE
Input Pin 'In Text 2'

Filter 'J. River Media Proxy Audio'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Audio' of filter 'LAV Splitter'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'XForm In' of filter 'LAV Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx

Filter 'J. River Media Proxy Video'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Video' of filter 'LAV Splitter'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO

Filter 'LAV Splitter'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\lavfilters-0.14\lavsplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'Input' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx
Output Pin 'Subtitle'
Connected to pin 'In Text' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Text Sub type TIME_FORMAT_NONE, Format type TIME_FORMAT_NONE

nevcairiel
12th February 2011, 11:38
It also happens on some real BD discs. I found one in my collection after checking maybe 10 discs. There might be more, i stopped looking then. Didn't see a relation between codecs or anything.

jmone
12th February 2011, 11:52
OK - thanks, I'll keep an eye out and if I notice a pattern I'll let you know

v0lt
12th February 2011, 22:58
small cosmetic bug
http://img69.imageshack.us/img69/6100/lavaudiocosmeticbag.th.png (http://img69.imageshack.us/i/lavaudiocosmeticbag.png/)

nevcairiel
12th February 2011, 23:12
Well when the codec name is too long for the field, then the codec name is too long for the field. :P
I like aligned fields, and Sample Rate is just a long term. There are a few pixels so that i can move it slightly to the left, but not much.

jmone
13th February 2011, 00:38
It also happens on some real BD discs. I found one in my collection after checking maybe 10 discs. There might be more, i stopped looking then. Didn't see a relation between codecs or anything.

Had a bit more of a ferret around. For me it is probably as high as 20 or 30% with this issue (over about 10disks). At first I thought it was all with a playlength above 2hrs, but I've found execptions to this both ways. I've tried muxing, remuxing, cross muxing and found that of the three (from 10) I have issue with
1) remuxing the one under 2hrs to M2TS fixed the issue
2) remuxing an over 2hrs one to M2TS made no difference
3) remuxing an over 2hrs one to TS or MKV fixes the issue (but then of course you can not use it as a part of the Blu-ray structure. I did try remuxing the working TS back to M2TS and the issue reappeared. I tried renaming the TS to M2TS but TMT5 whould not play the structure then).

Mmmmm....I give up on this one (for now)

Thanks
Nathan

As an aside..... this testing is all part of working out the pros and cons of how I want to store and play my collection from the server (MKV, M2TS, Blu-ray ISO, Blu-ray Structure)...and the balance of the bugs / limitations of the various components (filters, playback progs etc). Part of the thinking is working out what splitter to use for what type. Like most we probably started off with Haali then found some bugs, and started looking for alternatives.

Unfortunatly as the "seeking bug" on "some" M2TS files is outside your control to fix (eg an ffmpeg issue), it kind of rules LAV Splitter out as a reliable option for this file type.

nevcairiel
13th February 2011, 09:48
I will be working on BluRay support soon, which should fix those issues for m2ts in BluRay structures as libbluray handles those then, and not ffmpeg alone anymore. I can't give any solid ETA though, as it all depends on my free time.

jmone
13th February 2011, 10:45
Mate - your work on all of this is terrific. Let me know if you want anything tested.

SamuriHL
13th February 2011, 13:28
Has libbluray come that far along where it's ready to be implemented? Neat. I can't wait to see how that works!

nevcairiel
13th February 2011, 13:40
At first it'll support seamless playback of multi part m2ts and title/playlist selection, probably through the stream switcher at first. I'll create a new title selection interface and hook it into the navigation sub menu in mpc-hc eventually.

SamuriHL
13th February 2011, 14:04
That'll be pretty sweet. Can't wait.

jmone
13th February 2011, 19:41
So we will have a direct show based navigatin filter for Blu that we can load into any of the direct show players?

SamuriHL
13th February 2011, 19:48
That's the stated goal of libbluray, yes. I knew MPC-HC was going to integrate it at some point, but, it's good to see that Nev is looking into it. This is very good news.

jmone
13th February 2011, 19:52
This is just terrific and changes the whole storage setup for me!

SamuriHL
13th February 2011, 19:56
It doesn't change my backup strategy, but, it'd turn MPC-HC into a viable player for playing rented discs. THAT is awesome.

nevcairiel
13th February 2011, 20:15
I dont mind putting my disc in and watching it like that. Somehow it just feels better to me like that then watching a file dump.

In any case, yes it should be supported by every player. However for proper navigation support, and at a much later stage menu support, the player will have to support it.

SamuriHL
13th February 2011, 20:20
So the libbluray library doesn't give all that support for free? Interesting. Well, at least you're going to be able to make use of it. That'll be a great first step.

nevcairiel
13th February 2011, 20:30
I am not sure what you mean with "for free".

But the player of course needs some way to show what content is available and offer an interface to navigate to it, switch angles and whatnot.

Same for menus. I can provide an image of the menu, but the player needs to take care of forwarding key clicks and mouse clicks (although i havent seen mouse support in any commercial BD app, maybe its not possible with the info we have, maybe its just forbidden by the spec)

There are also some special events, like the graph needs to rebuild when the title was changed. New audio/video streams etc. All this needs to work with the player.

SamuriHL
13th February 2011, 20:32
Ah, I see. I was thinking libbluray would give that to the player. (That's what I meant by "for free"...meaning the player wouldn't have to do anything in order to use it). Clearly I was mistaken. That's going to be quite a bit of work for MPC-HC to implement. I know tetsuo55 said that would be done at some point but given how few devs there are to implement such a big feature, I'm guessing that will be a while before we see all of that implemented.

nevcairiel
13th February 2011, 20:34
Since mpc-hc is my player of choice, i'll implement this in the player as the features are being developed in lav splitter.

SamuriHL
13th February 2011, 20:37
Well that would be awesome! Maybe I'll have to get an MPC-HC build environment set up so I can assist. :)

jmone
13th February 2011, 20:59
In any case, yes it should be supported by every player. However for proper navigation support, and at a much later stage menu support, the player will have to support it.
Ive asked the devs at J River MC to reach out to you on this (note they have been working with madshi at the other end of the graph and have been modding their code to suit)

nevcairiel
13th February 2011, 21:01
Like i said, its far from being done, and it might be a while. But i appreciate any support, and player support is always great. :)

SamuriHL
13th February 2011, 21:05
Don't worry...it'll probably take me "a while" to get everything set up. I had ffdshow set up to build at one point but I don't even think I have that saved anywhere at this point. I learned this week that my C++ skills are.....um, "rusty"...after blowing a paper test on an interview. sigh. So, this would be beneficial for many reasons. :)

nevcairiel
14th February 2011, 07:47
Heh, neither MPC-HC nor ffdshow are projects that one should use to learn or even dust off C++, its basically a big catalogue of how not to do things.

SamuriHL
14th February 2011, 14:36
Yea, I remember when I was looking at the ffdshow code when Albain was implementing bitstreaming. It's a bit of a mess, no doubt. The sad part is, I'm actually really good at C++ and Java and blew the tests because they were given to me on paper. Who codes on paper??? I need a freaking living, breathing system in front of me in order to do my best work. BLAH! :D In any case, I really should get my stuff setup and start contributing when I have time.

Zero1
14th February 2011, 17:42
I can't seem to get it to install whatever I do. UAC is turned off, and I still ran cmd as administrator, dragged the batch into the window and hit enter. I even went and put all the files in syswow64 (trying to install the 32bit) and still no go. 0.14 32bit. (Win7)

http://img217.imageshack.us/img217/3683/reeg.png

Anyone have any ideas?

nevcairiel
14th February 2011, 17:48
Sounds like you're missing the VS2010 runtime. Check the first post for links.

I should supply an installer.

Kurtnoise
14th February 2011, 20:19
Feel free to start with my own nsis scripts...

-> script for x86 machines (http://pastie.org/1563882) (must be in the root folder)
-> script for x64 machines (http://pastie.org/1563883) (must be in the root folder)

>> LAVF DSPack x86 (http://www.mediafire.com/?v691bdsv1dgvrtt) | LAVF DSPack x64 (http://www.mediafire.com/?ww319bx9i9d3xsk)

BelowSky
14th February 2011, 22:03
Sounds like you're missing the VS2010 runtime. Check the first post for links.

I should supply an installer.

And I think you should consider statically linking the VS10 runtime. Anyways, it was made for those bureaucratic companies like Nero and CyberLink and others who was afraid of being accused of being part of MS software vulnerabilities.

B.S. IMHO, MPC-HC and FFDShow are using InnoSetup, it is very frequently updated, have many built in features and checks. Not to mention its unmatched GUI. I think LAV Filters should go with that route.
NSIS is too complex for such a simple software.

Zero1
15th February 2011, 00:42
Success. Thanks for the tip guys (I really should have read the first post, but it's the first time I've encountered something like this when registering .ax files).

ALS doesn't seem to work with Haali's splitter; I presume an update would be needed from Haali? After that I uninstalled Haali and installed the supplied splitter. Works perfect in MPC, but WMP gives me some useless generic error message that tells me nothing about the error. I also loaded the file in graphedit and it said it couldn't build a graph. Any ideas?

In an ideal world I'd like to use these audio decoders but use my current splitters (Haali).

Also how far off are features like decoding RLSLMS. Is that something you are working on, or is this simply the code from jruggle packaged into an ax? I presume jruggle's project is stalled since I've not seen anything since August or so.

nevcairiel
15th February 2011, 07:51
The thing is that my own splitter has a more direct communication to my audio decoder, thats why they will always work with any format you throw at them. For other splitters it requires a bit more effort

As long as Haali identifies ALS properly, i can probably configure the audio decoder to accept it. I'll have to test with Haali how it identifies and exposes the ALS audio track.
For WMP, it could be possible that its trying to use the Media Foundation MP4 demuxer (I'm assuming you have it in MP4 containers). In that case, it won't be that easy to convince it to use DirectShow. But i'll see about testing that as well.

And this is the ALS decoder thats supplied in ffmpeg. If that does not support RLSLMS, then we're out of luck.

Zero1
15th February 2011, 14:43
Hi. I did disable media foundation stuff for MP4 using the tool here:
http://forum.doom9.org/showthread.php?t=146910

That said, if the ALS decoder project has stalled, then I will probably just use FLAC. Without RLSLMS there isn't much point in using ALS imo (simply the greater compression ratio for myself personally).

I'll keep an eye on this thread for any progress though, and wish you the best. It really would be ace if ALS support could finally take off.

mindbomb
15th February 2011, 23:06
ffprobe correctly reports 01:30:15.81 for the main Commando .m2ts

so doesn't this mean there is no ffmpeg bug?

Hypernova
16th February 2011, 08:12
Just tried this. So far so good. The only thing I want to report is the batch file for uninstalling doesn't work since the file names is incorrect. I guess it was left unchanged since the old .ax name.

nevcairiel
18th February 2011, 09:45
Anyone happen to have some files with non-standard speaker configurations?
Anything thats not Mono/Stereo/5.1/7.1?

I actually have some 5.0 AC3 files, and they don't play properly with my hardware. I'm not sure if the NVIDIA HDMI Driver is doing it wrong, or my receiver interpreting the data wrong, but it interprets it as 4.1 (so the Center channel gets routed to the LFE - results in no voices). I'm trying to work on some small fixes (like adding an empty LFE channel to expand it to proper 5.1), but i need some more samples in different speaker layouts to make sure i don't break anything else.

Note that my 5.0 files don't play properly with MPC audio decoder or ffdshow either, unless i set the mixer in ffdshow to 7.1 (5.1 doesn't help).

So, anyone happen to have 4.0, 4.1, 6.1, 7.0 samples? (or possibly 2.1, 3.1, 3.0, not sure if those exist anywhere in real files)

adam777
18th February 2011, 14:44
nevcairiel, sadly I have not time, but you might want to have a look at http://people.bath.ac.uk/masrwd/mctools.html, seems to be able to create whatever multichannel file you need.

VipZ
19th February 2011, 13:05
So, anyone happen to have 4.0, 4.1, 6.1, 7.0 samples? (or possibly 2.1, 3.1, 3.0, not sure if those exist anywhere in real files)

If I am not mistaken, some of the early Stargate SG-1 DVD's have 2.1, 3.1 or 3.0. I will take a look on them bit later for you, and post samples if found.

nevcairiel
19th February 2011, 15:35
Hm i have a DVD box set of those as well. I'll try and see if they are any special.

Ger
19th February 2011, 16:54
I just skimmed through some archived avi/ac3 versions of those using the handy MediaInfo tooltip, and provided they match the original DVD there are both 3.0 and 3.1 tracks in seasons 2, 3 and 4. The first two episodes in season 3 have 3.0 and 3.1 tracks respectively here.

While 2.0 and 5.1 sounds fine, I can't hear any dialogue in my headphones with 3.0 or 3.1, only background music etc. Both sound fine with MPC-HC AC3 decoder with downmixing to stereo enabled.

If you can't find the DVDs I can upload one of each, but it will take a while.

nevcairiel
19th February 2011, 16:59
Sounds like the same issue i had with my 5.0. I know where the DVDs are, just have to see if they are the same version.

VipZ
19th February 2011, 17:33
I have made a 3.1 sample, I couldn't find a 3.0, if you could point me to the correct ep, I can make a quick sample, this was taken from Stargate SG1 Season 2 EP1 (UK Boxset) http://www.mediafire.com/?zcj2lzamt18b6l4

My Season 3+ are all 5.1 as far as my random testing goes.

On other bugs, There are still stuttering issues with OGM files with subtitles, and rarely MP4 files don't play (video frozen but audio plays), let me know if you want samples. Not sure if VOB's are supported as when trying to check for the 3.0/3.1 streams I found it stutters badly.

Ger
19th February 2011, 18:01
This probably won't help you then since there must be different versions around, but anyway:

I don't have any 3.0 eps in season 2. The first four season 2 eps are 3.1 and all others 2.0 here.

These are the only ones I could find in 3.0:
S03E01 Into The Fire
S04E13 The Curse
S04E14 The Serpent's Venom
S04E15 Chain Reaction
S04E16 2010

nevcairiel
19th February 2011, 20:40
The 3.1 sample is great, thanks. A 3.0 sample would be nice, i checked my DVDs, but they are all either 2.0 or 5.1, must be another edition.

I'll probably offer an option to expand those "odd" formats into 5.1. Either with silence, or with a copy of the front channels for the surround (possibly with a factor to make them a bit quieter).
I do want to offer a Low-Pass to fill a non-existant LFE channel, but implementing a FIR filter for the low-pass will be postponed a bit.

I'll also think about full matrix operations to allow stereo downmixing.
AC3, DTS and TrueHD offer native Stereo Downmixing. All other formats need custom matrix processing to get the channels merged. I'll work on that soon.

Ger
19th February 2011, 21:39
A 3.0 sample would be nice, i checked my DVDs, but they are all either 2.0 or 5.1, must be another edition.

See PM for sample.

FWIW, the MPC-HC AC3 decoder sounds good with voices no matter what speaker config I set in the decoder. 3.0, 3.1, 5.1 2.0 etc. I can hear volume differences, but the voices are always there.

nevcairiel
19th February 2011, 21:40
My 5.0 sample did not work properly with any decoder, which was rather weird. Oh well.

mindbomb
21st February 2011, 04:50
I'll also think about full matrix operations to allow stereo downmixing.
AC3, DTS and TrueHD offer native Stereo Downmixing. All other formats need custom matrix processing to get the channels merged. I'll work on that soon.

awesome.

do you think you might also add a 5.1 downmix for flac and truehd?

Hypernova
21st February 2011, 10:17
I'm having trouble with mkv files with softsub and xvid. It seems like the correct font won't load. The color and style seems file, but instead of specified fontface, the default was used. Haali and MPC-HC internal spilter works correctly.

An example is any of Jumonji-Giri's release of Canvas2. I'm not sure how much I can say before I violate forum rules..

nevcairiel
21st February 2011, 10:18
The files are supposed to ship their own font inside the .mkv i assume? Thats currently not supported yet, but its on my list.

Hypernova
21st February 2011, 10:23
The files are supposed to ship their own font inside the .mkv i assume? Thats currently not supported yet, but its on my list.

You're right. Sorry I didn't check the issue tracker before posted. Thanks for the very quick reply!

adam777
21st February 2011, 23:10
Hi nevcairiel,
I'm using the splitter and audio decoder without any problems in MPC-HC for quite some time, so thanks :thanks:
Now, I wanted to use the audio decoder in a DVB-T application as it seems to be able to decode the HE-AACv2 format correctly (i.e. decode as stereo), judging by an MPEG-TS dump I recorded and played in MPC-HC (the file contains multiple programs in one file (broadcasted over same frequency), so it doesn't seem to be the cause).
Problem is, the application seems to load only the audio decoder, not the splitter (I can see only LAVAudio.ax used by the application in Process Explorer).
It results in no audio, could the problem be related to something else (live stream etc.)?
I've already contacted the application author (http://pvr.sichbo.ca/), but is there something that can be done on your side to resolve the problem?
2 things are worth noting.
- While I'm not sure which splitter is being used (could not utilize remote graph connection, but I can probably list .ax files in Process Explorer), the video decoder is the built in Microsoft H.264 decoder and it plays nice with both monogram AAC decoder (http://blog.monogram.sk/janos/2009/03/08/monogram-aac-decoder-0960/) and Libfaad2 wrapper filter (http://www.dvbviewer.tv/forum/topic/23347-libfaad2-wrapper-filter/).
- I tried increasing the merit of the splitter, but it didn't seem to help (or I messed it up somehow :)).

Thanks, Adam.

nevcairiel
22nd February 2011, 07:49
DVB apps have their own source filters/splitters. LAV Splitter only works with file based media, or potentially network streaming (some day), but not DVB-T tuner cards.

You say the audio decoder loads, does the audio play properly? If so, whats the problem? :)

adam777
22nd February 2011, 10:23
DVB apps have their own source filters/splitters. LAV Splitter only works with file based media, or potentially network streaming (some day), but not DVB-T tuner cards.

You say the audio decoder loads, does the audio play properly? If so, whats the problem? :)

Loads, but no audio.

nevcairiel
22nd February 2011, 10:28
One thing you can do is ask the dev how their source filter works. Is it a combined Source/Splitter, or is it a raw source that depends on an external splitter filter?
If its the latter, i might be able to support this behavior at a later stage.

(A raw source filter just captures the raw MPEG-TS stream from the DVB-T card and sends it to a splitter, while a combined filter already demuxes the MPEG stream before sending it off)

bjd
22nd February 2011, 12:56
One thing you can do is ask the dev how their source filter works. Is it a combined Source/Splitter, or is it a raw source that depends on an external splitter filter?

I get no audio from LAV audio when using Mpc-Hc internal Mpeg Splitter to open either .ifo or .vob files. Ffdshow audio works no problem.

It does not seem to matter whether the files in question have no CSS or I use Mpc-Hc or AnyDVD to remove. The splitter passes MEDIATYPE_Audio ok but no sound ?

- Connected to:

CLSID: {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}
Filter: LAV Audio Decoder
Pin: XForm In

- Connection media type:

Audio: Dolby AC3 48000Hz stereo 256kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_DOLBY_AC3 {E06D802C-DB46-11CF-B4D1-00805F6CBBEA}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0x2000
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 32000
nBlockAlign: 1024
wBitsPerSample: 0
cbSize: 0 (extra bytes)

nevcairiel
22nd February 2011, 14:12
I get no audio from LAV audio when using Mpc-Hc internal Mpeg Splitter to open either .ifo or .vob files. Ffdshow audio works no problem.


Its probably sending a PES stream instead of proper packages.
This is not supported yet.

Did i mention that the MPC internal splitters are mostly crappy hackjobs that the other filters were forced to adapt to? I don't like doing that. :p

bjd
22nd February 2011, 14:45
Its probably sending a PES stream instead of proper packages.
This is not supported yet.

Did i mention that the MPC internal splitters are mostly crappy hackjobs that the other filters were forced to adapt to? I don't like doing that.

Nev, thanks for the reply, I had a feeling that it would be something like this, especially with an .ifo where I am assuming the data is streamed from the vob by the splitter.

I have looked at the mpc-hc splitter code, and yes there is quite a lot of hacking, but I guess you expect that when someone else takes over a project that they did not start. :rolleyes:

The odd thing is that I have an .ifo which present 24/96 LPCPM rather than .ac3 and the mpc-hc mpeg splitter parses ok to LAV audio and I get audio. But of course that may be just luck that some hack has not effected it as it is not a common DVD audio type.

.vob -> lav splitter -> lav audio of course has no problems. :)

adam777
22nd February 2011, 15:52
One thing you can do is ask the dev how their source filter works. Is it a combined Source/Splitter, or is it a raw source that depends on an external splitter filter?
If its the latter, i might be able to support this behavior at a later stage.

(A raw source filter just captures the raw MPEG-TS stream from the DVB-T card and sends it to a splitter, while a combined filter already demuxes the MPEG stream before sending it off)

OK, will do.
Thank again, Adam.

jmone
23rd February 2011, 11:02
In any case, yes it should be supported by every player. However for proper navigation support, and at a much later stage menu support, the player will have to support it.

The devs at J River (Media Center) are keen to support your work. I've sent you a PM with contact details.

pirlouy
23rd February 2011, 23:27
I just discover this thread. I've tried to search for differences between LAV filters and ffdshow on Google and found nothing interesting.

From what I've read, LAV filters and ffdshow have common points, isn't it ? LAV has splitters, but also decoders like ffdshow. The differences seem to be LAV has splitter whereas ffdshow has post-processing.
Which decoder is recommended ? FFdshow or LAV filters ? What about Haali splitter in comparison (except it is not Open Source) ?

Sorry if I did not understand well.

Virtual_ManPL
24th February 2011, 20:49
You posted in wrong thread man... :rolleyes:

fps
24th February 2011, 23:24
First of all thanks for your work nevcairiel :). It's great to see development in the splitter area.

However, I'm having some trouble with the audio decoder. Whenever I use your audio decoder + splitter to play a H.264/AC3 file I get stuttery playback with madVR. It doesn't change wheter it's FSE mode or windowed mode, there always a lot of dropped and delayed frames.
I have the same problem on 2 different machines, one is a notebook with a Nvidia GPU, the other a standalone pc with a AMD GPU.
If I switch to another audio decoder like ffdshow's one and still use your splitter the problem is gone.
Changing to EVR-CP renderer and keeping the LAV audio decoder + splitter solves the problem, too.

I also noticed another problem with madVR. Whenever I try to switch between audio tracks via the system tray icon of madVR, the player crashes.
This doesn't depend on the audio decoder however, it seems to be just a problem of the combination splitter + madVR.

Setup:
MPCHC 1.5.1.2946
CoreAVC 2.0 (tried ffdshow too)
madVR 0.39
Win7/32

Virtual_ManPL
25th February 2011, 00:06
Could it be related to bug bug #31 (https://github.com/Nevcairiel/LAVFSplitter/issues/#issue/31) ?

fps
25th February 2011, 00:14
I don't really think so, since the bug report states that the problem occurs with EVRCP, but in my case EVRCP is the working renderer.

mindbomb
25th February 2011, 00:16
I just discover this thread. I've tried to search for differences between LAV filters and ffdshow on Google and found nothing interesting.


well, lav audio decoder is alot lighter than installing ffdshow if you just need an audio decoder.

ffdshow can't output true 24 bit pcm, so there is likely to be quality loss for videos with 24 bit flac or truehd audio.

and as for haali splitter, i don't use it because it has problems with dts-hd ma audio with things muxed with mkvmerge 4.4 and older.

robpdotcom
25th February 2011, 01:03
and as for haali splitter, i don't use it because it has problems with dts-hd ma audio with things muxed with mkvmerge 4.4 and older.


That can be fixed using mmg's header editor in a matter of seconds. Just change the default duration of the DTS-HD track to 10666666. No need to remux.

But once forced sub loading in LAV splitter is solved, I probably won't use Haali much either (except for ordered chapters and linked segments, which I imagine is further down the road for LAV).

bjd
25th February 2011, 10:56
I just discover this thread. I've tried to search for differences between LAV filters and ffdshow on Google and found nothing interesting.

LAV Audio seems to handle the various types of LPCM better than ffdshow with the added bonus of proper 24bit output.

fastplayer
25th February 2011, 13:03
I'll also think about full matrix operations to allow stereo downmixing.
AC3, DTS and TrueHD offer native Stereo Downmixing. All other formats need custom matrix processing to get the channels merged. I'll work on that soon.
Is stereo downmixing done automagically by the LAV Audio decoder or do I need to configure MPC-HC in any way?

nevcairiel
25th February 2011, 13:47
It doesn't do any downmixing at all right now. That will be in a future version.

nevcairiel
27th February 2011, 13:46
Good news everyone, i found the bug that caused the error with mpeg-ts durations on files > 4GB (Typically BluRays)

nevcairiel
27th February 2011, 16:05
LAV DirectShow Filters 0.15
LAV Splitter
- Fixed automatic selection of forced subtitle stream if the "Only Forced Subs" mode is active.
- Fixed a bug in file handling that caused file sizes above 4GB to overflow, causing invalid durations to be reported in some files.
- Improved performance on file opening

LAV Audio Decoder
- Enabled the ffmpeg codec parsers, which should improve compatibility with other DirectShow splitters.
- Added a audio channel activity display to the status property page (for debugging channel assignments)

Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.15.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.15-x64.zip)

I was watching some BluRays on the weekend, and it was really annoying to either not have a duration, or having to switch to the MPC-HC Internal Splitter and having all sorts of problems with Audio.. so i just fixed the duration problem. I also improved compatibility between LAV Audio and other splitters by enabling the ffmpeg codec parsers - a job that normally the splitter should do, but you know, most of them are crap.

Oh, and i also found the cause of the Forced subtitles not being enabled properly, and fixed it. As long as the forced flag is properly set on the stream (as indicated by the [forced] after the stream name), it should now always catch on.

I've been on an excourse into video decoding over the last week, but i'll probably put that on ice for a while, as its really alot of fine-tuning to get that working 100%.

So, next up, if time permits, improved BluRay support!

adam777
27th February 2011, 17:15
Hi nevcairiel,
Just tried 0.15, and unfortunately immediately encountered a bug - audio disappear on seek, confirmed with AAC, AC3, DTS.
No problems with 0.14.

On an unrelated issue.
One thing you can do is ask the dev how their source filter works. Is it a combined Source/Splitter, or is it a raw source that depends on an external splitter filter?
If its the latter, i might be able to support this behavior at a later stage.

Here's the DVB application developer's response:

For the audio decoder, PVR is its own splitter/demux, and as nevcairiel on the forum correctly points out, I send just the one required raw PES stream alone

So I suppose that according to that:
Its probably sending a PES stream instead of proper packages.
This is not supported yet.


I'll have to wait patiently.
Thank again :thanks:

nevcairiel
27th February 2011, 17:17
Just tried 0.15, and unfortunately immediately encountered a bug - audio disappear on seek, confirmed with AAC, AC3, DTS.
No problems with 0.14.

Its most likely related to some internal restructuring, i'll look into it.

nevcairiel
27th February 2011, 17:43
LAV DirectShow Filters 0.16
LAV Audio Decoder
- Fixed missing audio after seeks

Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.16.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.16-x64.zip)

I hope this solves the problem.

Ger
27th February 2011, 17:52
Another new problem in 0.15:
Starting playback from a non-zero position (using either of the MPC-HC features "Remember File position" or "Favorites") no longer works.

Tested with a regular avi (xvid/mp3) and MPEG-TS, so I assume all formats are affected.

Maybe something goes wrong with the new "Do not do an initial seek to position 0" code, even though in this case it's not really position 0?

EDIT:
Tried 0.16 now.
Sometimes it works right away.
Sometimes black screen for several seconds, then it suddenly starts.
Sometimes does not work at all (or at least takes long enough for me to give up waiting).

adam777
27th February 2011, 17:53
0.16 solves the missing audio after seek problem.
Thanks for the super-quick reply :)

nevcairiel
27th February 2011, 18:25
LAV DirectShow Filters 0.17
LAV Splitter
- Fixed seeking before starting playback

Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.17.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.17-x64.zip)

It did seem like a good idea when i wrote it. Didn't think the player would dispatch the seek before starting playback. Thats what i get for turning store file position off, because i tested the do-not-start problem.
Thats it for today. Any other regressions, going to have to wait.

Ger
27th February 2011, 19:00
All OK in 0.17. :thanks:

Matching_Mole
27th February 2011, 19:28
I have an issue with LAVaudio filter and Reclock (last version) on Seven.

I use reclock only as Wasapi audio renderer and when LAVaudio filter decode True-HD stream, it sent PCM in IEEE stream. But Reclock give an error message because it can't initialise the WASAPI driver with a such format. I try to configure Reclock in order to change the format to another ones (32bit int, 24 padded to 32, 24bit in,...) but I have always the same error coming from the number of sample (???). Using FFDshow with 32int as format out, no issue but I can't configure LAVaudio filter in the same way, isn't it?

nevcairiel
27th February 2011, 19:43
You need to configure ReClock to one specific output format. Apparently you tried that already, but thats all you have to do really. ReClock will then requant audio to the appriopriate format.
It may also be the combination of sampling rate and sample size. Try to configure reclock to resample the audio into another, standard sample rate, like 48khz or 96khz.

Besides, TrueHD should never send IEEE float, it should rather produce 16-bit int or 24-bit int, as its a lossless codec.

Matching_Mole
27th February 2011, 19:52
Try to configure reclock to resample the audio into another, standard sample rate, like 48khz or 96khz.

Besides, TrueHD should never send IEEE float, it should rather produce 16-bit int or 24-bit int, as its a lossless codec.

I tried also but i didn't work. But I tried with only one specific blu-ray so I will try another one to see if it is due to it.

Thanks for your support!

nevcairiel
27th February 2011, 19:54
Make sure you're not using the MPC-HC Internal mpeg splitter, it does not work with TrueHD and LAV Audio.
Its particularly stupid and broken, and sends it as AC3 data.. <.<

Matching_Mole
27th February 2011, 20:11
Oooh I thought that the parser that you implemented solved this issue. But I was wrong, sorry. So here the reason of my issues.

Today I keep using MPC internal splitter because it can make seamless branching playback. But clearly if you implemented this feaure (maybe with our next implementation of libbluray in your splitter?), I will let down it for yours.

Thanks

nevcairiel
27th February 2011, 20:17
It did solve it for other formats, like some DTS-HD BluRays i had didn't play at all.
However, the MPC-HC splitter doesn't really support TrueHD, its basically a fluke that it detects the stream and sends it as AC3.

robpdotcom
27th February 2011, 20:44
LAV DirectShow Filters 0.15
LAV Splitter
- Fixed automatic selection of forced subtitle stream if the "Only Forced Subs" mode is active.

Big thanks for this, it works great now.:cool:

jmone
27th February 2011, 22:17
Thanks! Nice Update and I can confirm:
1) Duration Bug is fixed on Blu-Ray Items
2) Subs: I think there still may be some fine tuning, eg I just mounted Valkyrie and LavSplitter unnecessarily grabbed Sub Stream #8 (english subs)
3) Seek: I can Chpt Fwd / Back fine, but if I do a seek then I get one static frame from teh new location but the stream will not play (it is like it is paused). See the DirectShow filter info below for both this and #2
4) Audio Filter: Nice new display. One point is that it shows BL and BR (on 5.1 info), should they not be labeled SL / SR (as Back L / Back R are the extra 2 channels from 5.1 to 7.1)

ALso looking forward to your Blu-ray support!

nevcairiel
27th February 2011, 22:22
3) Seek: I can Chpt Fwd / Back fine, but if I do a seek then I get one static frame from teh new location but the stream will not play (it is like it is paused). See the DirectShow filter info below for both this and #2


Does that work with .14?
Does it fix itself after a few seconds?


4) Audio Filter: Nice new display. One point is that it shows BL and BR (on 5.1 info), should they not be labeled SL / SR (as Back L / Back R are the extra 2 channels from 5.1 to 7.1)

I suppose, but it does output them to the correct channels in my 7.1 setup, its just a display thing.

jmone
27th February 2011, 22:24
Filter Graph Info:

Filter 'J. River Audio Renderer'
CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
Host:
Input Pin 'In'
Connected to pin 'XForm Out' of filter 'LAV Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'madVR'
CLSID: {E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}
Host: c:\users\mum and dad\downloads\madvr\madvr.ax
Input Pin 'Input'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2

Filter 'LAV Audio Decoder'
CLSID: {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}
Host: c:\users\mum and dad\downloads\lavfilters\lavaudio.ax
Input Pin 'XForm In'
Connected to pin 'Output' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx
Output Pin 'XForm Out'
Connected to pin 'In' of filter 'J. River Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx

Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files (x86)\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Output' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'Input' of filter 'madVR'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Connected to pin 'Subtitle' of filter 'LAV Splitter'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}, Format type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}
Input Pin 'In Text 2'

Filter 'J. River Media Proxy Audio'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Audio' of filter 'LAV Splitter'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'XForm In' of filter 'LAV Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx

Filter 'J. River Media Proxy Video'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Video' of filter 'LAV Splitter'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO

Filter 'LAV Splitter'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\lavfilters\lavsplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_H264, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'Input' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_DTS, Format type FORMAT_WaveFormatEx
Output Pin 'Subtitle'
Connected to pin 'In Text' of filter 'ffdshow Video Decoder'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}, Format type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}

jmone
27th February 2011, 22:58
Does that work with .14?
Mmmm I did some checking back and forth and it may be the Audio Filter causing the issue. It seems to "sometime" drop the audio causing issues with various Audio Renderer, eg:
- Direct Sound (Speakers): Will continue to play but without sound. Also - I see in the Audio Decoder Properties, that I have full green bars for all 5.1 channels.

- J.River / Reclock: More interesting as these are the Audio Renderers that resample to keep track with Video playback to prevent droped frames. I get stalled video with J.River and while it will play with Recock (sans sound) the player will eventually hang.

Now, not all seeks cause the issue - only some. Some play fine, some seem to drop the Audio.

If I remove just LAV Audio then there is no issue.

Let me know what details you want.

I suppose, but it does output them to the correct channels in my 7.1 setup, its just a display thing.

Correct - just an observation!

jmone
27th February 2011, 23:30
I take it all back! - I had dowloaded and was testing V15 for some reasons. Audio drop outs post a seek are obviouisly fixed in V17 and hence the files now play fine.

Would it be possible to add a V# to the filter info pages? Sorry for the confusion.

Thanks
Nathan

bjd
28th February 2011, 00:21
I was watching some BluRays on the weekend, and it was really annoying to either not have a duration, or having to switch to the MPC-HC Internal Splitter and having all sorts of problems with Audio

the internal splitter is a necessary evil for seamless branching but it does have quite a few other bugs. I try and stick to LAV wherever possible as the graph rebuild on audio change is a necessity with Bluray discs.

no problems with 0.17 so far and my Commando disc now reports 1:30:xx for the main movie ;)

Thanks for all your hard work.

BelowSky
28th February 2011, 01:09
What is the deal with LAV Filter?
Do we expect it support legacy, yet important, stuff like Real Cook Audio and 3GP and AMR out of the box?
I can play them all with FFplay.exe but not with LAV Filter!

nevcairiel
28th February 2011, 07:56
If you use LAV Splitter together with LAV Audio, it should be able to decode all audio that ffmpeg supports (in the containers officially supported by LAV Splitter). If you use other splitters, those formats need to be hooked up properly, and i'll have to do that eventually.

madshi
28th February 2011, 17:06
Just installed the LAV splitter for the first time. I can get it to work in GraphEdit, but not in MPC-HC. Disabling the internal Matroska splitter and renaming Haali isn't good enough, MPC-HC still uses the internal Matroska splitter. Furthermore, when using the "GSpot Codec Information" tool, the LAV Splitter is not listed at all. However, the LAV Audio Decoder and the Haali Media Splitter are both listed.

nevcairiel
28th February 2011, 17:15
In DirectShows eyes, its technically a source filter, and i don't see those in the GSpot codec list at all.

For the MPC-HC issue, i've had people report that they had to properly uninstall Haali to get it to work. I should probably do the same as Haali and register for the extension, forcing my filter to be used once its installed (there can only be one source filter per extension).
I wanted to wait with that until i had config options in the filter for which formats to load, though. Oh well, more on the list of things to finish.

madshi
28th February 2011, 17:22
I think you're right about source filters not being listed in the GSpot codec list. Anyway, I've uninstalled the Haali Media Splitter, uninstalled the LAV splitter, reinstalled the LAV splitter, and MPC-HC does still not use it, although I've "preferred" it and disabled the internal Matroska splitter... :( It does work fine in GraphEdit, though.

fastplayer
28th February 2011, 17:30
Are you sure you've uninstalled Haali "correctly"? Up until the latest version the uninstall procedure was completely broken meaning not uninstalling at all (it removed the files but didn't un-register em). I haven't checked whether it was fixed in the current version although the changelog claims it is...

nevcairiel
28th February 2011, 17:34
Deleting HKEY_CLASSES_ROOT\Media Type\Extensions\.mkv (HKEY_CLASSES_ROOT\WoW6432Node\Media Type\Extensions\.mkv for 32-bit on 64-bit OS) will unlock the source filter selection. As far as my research in the filter graph builder shows, once one is configured there, it uses that one. If it cannot use that one, it fails. MPC-HC catches the failure, and falls back to the internal one in that case.

For the next version, i'll most likely write my GUID in there to solve these problems. If you install it, you better want to use it. :P

Oh, and you didn't install the mpc-hc standalone filters, did you?

madshi
28th February 2011, 17:51
The Haali uninstaller seems to have worked alright. The Haali filters are all gone from the GSpot filter list. Also the registry didn't contain entries for "Media Type\Extensions" for MKV, TS, m2ts and VOB. But *still* MPC-HC wouldn't use the LAV Splitter. So I've manually added entries under "Media Type\Extensions" for LAV Splitter - and now it finally works! :)

The question is for which extensions you will register? For all supported extensions?

nevcairiel
28th February 2011, 17:56
In a perfect world, i would offer an installer with options. I'll see what i can do.

I just noticed something else in MPC-HCs code. LAV Splitter had a relatively low merit (MERIT_NORMAL), and the preferred filter list does not work with source filters, it seems. Once i increased the merit to "MERIT_PREFERRED+4" (Haali is +1), i could actually use it with Haali installed.
MPC-HC outputs quite alot of helpful information about its graph building, sadly only into a debugger console and not a debug log file for everyone to use, but that exposed that shortcoming of the external filter list.

I'll look into actually fixing this in MPC-HC as well, so one can change the merit of source filters through the filter list.
Edit: That code is unnecessarily complex. I'll do that another day.

madshi
28th February 2011, 18:19
In a perfect world, i would offer an installer with options. I'll see what i can do.
How about shipping one simple "*.reg" file per extension? Then users can simply double click the reg files for those extensions they want to have registered? Or maybe a reg file + a bat file, so installation with admin rights is easier. You could put all that stuff into a separate folder, e.g. with the name "register file extensions".

I just noticed something else in MPC-HCs code. LAV Splitter had a relatively low merit (MERIT_NORMAL), and the preferred filter list does not work with source filters, it seems. Once i increased the merit to "MERIT_PREFERRED+4" (Haali is +1), i could actually use it with Haali installed.
MPC-HC outputs quite alot of helpful information about its graph building, sadly only into a debugger console and not a debug log file for everyone to use, but that exposed that shortcoming of the external filter list.

I'll look into actually fixing this in MPC-HC as well, so one can change the merit of source filters through the filter list.
Edit: That code is unnecessarily complex. I'll do that another day.
Well, that would be great, if you could fix that (sooner or later)!

madshi
1st March 2011, 18:02
I'm having some trouble with the audio decoder. Whenever I use your audio decoder + splitter to play a H.264/AC3 file I get stuttery playback with madVR. It doesn't change wheter it's FSE mode or windowed mode, there always a lot of dropped and delayed frames.
I have the same problem on 2 different machines, one is a notebook with a Nvidia GPU, the other a standalone pc with a AMD GPU.
If I switch to another audio decoder like ffdshow's one and still use your splitter the problem is gone.
Changing to EVR-CP renderer and keeping the LAV audio decoder + splitter solves the problem, too.
I've got a log from fps and I can see something interesting in it:

Tick: 00002444, RefClock->GetTime: 3519569852084, QueryPerformanceCounter: 571647010293
Tick: 00002510, RefClock->GetTime: 3519569857084, QueryPerformanceCounter: 571647118339
Tick: 00002627, RefClock->GetTime: 3519571853125, QueryPerformanceCounter: 571647307563
Tick: 00002630, RefClock->GetTime: 3519571853125, QueryPerformanceCounter: 571647312334
Tick: 00002659, RefClock->GetTime: 3519571853125, QueryPerformanceCounter: 571647359537
Tick: 00002694, RefClock->GetTime: 3519571853125, QueryPerformanceCounter: 571647416523
Tick: 00002777, RefClock->GetTime: 3519573471042, QueryPerformanceCounter: 571647551683
Tick: 00002779, RefClock->GetTime: 3519573491042, QueryPerformanceCounter: 571647555613
Tick: 00002799, RefClock->GetTime: 3519573691042, QueryPerformanceCounter: 571647586867
Tick: 00002827, RefClock->GetTime: 3519573888542, QueryPerformanceCounter: 571647632097
Tick: 00002877, RefClock->GetTime: 3519573888542, QueryPerformanceCounter: 571647713443
Tick: 00002960, RefClock->GetTime: 3519574871459, QueryPerformanceCounter: 571647848364
Tick: 00002993, RefClock->GetTime: 3519574871459, QueryPerformanceCounter: 571647901939
Tick: 00003059, RefClock->GetTime: 3519576298959, QueryPerformanceCounter: 571648010260
As you probably know, the DirectShow reference clock is usually provided by the audio renderer. On fps' PC, with LAV Splitter -> LAV Audio Decoder -> madVR it seems that the reference clock is behaving very bad. E.g. in one case (see above) the reference clock doesn't progress *at all* for 70ms. This is the reason why madVR's rendering gets all screwed up. I don't have logs from fps when using a different audio decoder, so I can't say how different that would be. But I can say that on my PC I can't reproduce the problem. With LAV Audio Decoder my reference clock is progressive smoothly.

I don't really know how an audio decoder can stop the reference clock from moving forward, but I guess it's possible. E.g. I could imagine if the audio decoder is outputting nothing for 70ms, and then outputting a few MBs of audio data in one big chunk, that might explain the problem. How large are your LAV Audio Decoder output buffers? It might help to make sure that your decoder outputs data constantly, instead of collecting decoded audio data and then sending it in big chunks.

nevcairiel
1st March 2011, 18:10
It doesn't really buffer anything. When it gets an input packet, it throws it into the input buffer, and then trys to decode the buffer. All PCM data is send downstream right away, there is no buffering at that end.
Only explanation could possibly be that the input buffer doesn't fill enough in that time, but that doesn't make any sense, the source filter should keep pushing data as fast as it can.

Considering fps is also using LAV Splitter, it even makes less sense, as it parses the audio frames so always full frames are delivered to the decoder, and no incomplete data (so the input buffer shouldn't be used much)

I also tried to reproduce it with various combinations of audio renderers, but i couldn't get it to break.
I'll think about this. Maybe something comes to mind. But you're the only one to report this problem, too. So, hm!

Edit:
@fps::
One thing i was just thinking about, how is CPU usage while playback? LAV Splitter sets the video delivery thread a higher priority then the audio thread, so if your system is too slow, it might cause the audio decoder to not get any decoding time (decoders typically stay on the same thread as the source filter). But for that to happen you would need to be at 100% usage all the time.

Also, which audio renderer did you use?

madshi
1st March 2011, 18:43
Maybe running audio and video pins at the same priority would work better for 100% CPU usage scenarios? I've no idea, I've no experience with writing video+audio splitters yet. But then, that would be a splitter change, so it wouldn't explain why fps has no problems when using a different decoder. <sigh>

fps
1st March 2011, 19:05
Ok, it seems to be an issue of the combination of splitter and audio renderer, indeed.
First of all cpu usage is about 33% no matter which combination of splitter/audio renderer/audio decoder.
In all my former log files I used the System Default audio renderer of MPCHC.
Changing it to speaker (Conexant High Def) or Default Wave Out Device reduces the stuttering considerably while using LAV Splitter -> LAV Audio Decoder.
According to the OSD there are no more dropped/delayed frames any more, but the playback isn't really smooth compared to when I use LAV Splitter -> ffdshow audio decoder -> system default audio renderer (or speaker (Conexant High Def), same result).

I think it might be a problem with the clock again, since the clock deviation is much more fluctuating when I use LAV audio decoder.
I made some more logs (http://www.mediafire.com/?76xbsaxit9fdkxs) with the different combinations of splitters + renderers. One thing that's strange is one log file is 4 times the size of the others although I let the player run about the same time. Maybe nothing special, but I thought worth mentioning at least.

nevcairiel
1st March 2011, 19:16
Can you try the MPC-HC internal decoder?
It uses approx. the same processing model as my decoder.

fps
1st March 2011, 19:31
Do you mean this renderer?
http://t1.pixhost.org/thumbs/1976/6059388_audio.png (http://www.pixhost.org/show/1976/6059388_audio.png)
In combination with LAV Audio decoder this renderer doesn't load on my PC. With ffdshow audio the MPC Audio Renderer gets used as it should.

In the case of LAV Audio Default Direct Sound Device is used instead with this pin info:

Filter : Audio Switcher - CLSID : {18C16B08-6497-420E-AD14-22D21C2CEAB7}

- Connected to:

CLSID: {79376820-07D0-11CF-A24D-0020AFD79767}
Filter: Default DirectSound Device
Pin: Audio Input pin (rendered)

- Connection media type:

Audio: WAVE_FORMAT_EXTENSIBLE 48000Hz 6ch 9216kbps

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: 24
cbFormat: 40

WAVEFORMATEX:
wFormatTag: 0xfffe
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 1152000
nBlockAlign: 24
wBitsPerSample: 32
cbSize: 22 (extra bytes)

WAVEFORMATEXTENSIBLE:
wValidBitsPerSample: 32
dwChannelMask: 0x0000003f
SubFormat: {00000003-0000-0010-8000-00AA00389B71}

pbFormat:
0000: fe ff 06 00 80 bb 00 00 00 94 11 00 18 00 20 00 þÿ..€»...”.... .
0010: 16 00 20 00 3f 00 00 00 03 00 00 00 00 00 10 00 .. .?...........
0020: 80 00 00 aa 00 38 9b 71 €..ª.8›q

- Enumerated media type 0:

Set as the current media type

nevcairiel
1st March 2011, 19:31
The decoder, not the renderer. :) Just enable AC3 in the internal filter list.
The renderer does not work with float audio, which my decoder outputs by default on lossy formats.

fps
1st March 2011, 19:38
System Default Audio Renderer + internal AC3 decoder works without any problems.

nevcairiel
1st March 2011, 19:40
Ok, thanks. I'll check some things then.

madshi
1st March 2011, 19:57
@fps, the "big" log actually contains multiple video starts. It seems you forgot to delete/clear the log file before starting the real logging.

I've compared the LAV Splitter -> LAV Audio Decoder log with the LAV Splitter -> ffdshow Audio Decoder log. Here are the results:

LAV Audio Decoder:

00001197 RefClock->GetTime: 437247650000
00001257 RefClock->GetTime: 437248240000, tick dif: 60, time dif: 59.0000
00001264 RefClock->GetTime: 437248320000, tick dif: 7, time dif: 8.0000
00001277 RefClock->GetTime: 437248410000, tick dif: 13, time dif: 9.0000
00001280 RefClock->GetTime: 437248410000, tick dif: 3, time dif: 0.0000
00001291 RefClock->GetTime: 437248410000, tick dif: 11, time dif: 0.0000
00001375 RefClock->GetTime: 437248997709, tick dif: 84, time dif: 58.7709
00001385 RefClock->GetTime: 437249097709, tick dif: 10, time dif: 10.0000
00001388 RefClock->GetTime: 437249097709, tick dif: 3, time dif: 0.0000
00001403 RefClock->GetTime: 437249281459, tick dif: 15, time dif: 18.3750
00001414 RefClock->GetTime: 437249311459, tick dif: 11, time dif: 3.0000
00001417 RefClock->GetTime: 437249311459, tick dif: 3, time dif: 0.0000
00001434 RefClock->GetTime: 437249601042, tick dif: 17, time dif: 28.9583
00001456 RefClock->GetTime: 437249821042, tick dif: 22, time dif: 22.0000
00001482 RefClock->GetTime: 437249971042, tick dif: 26, time dif: 15.0000
00001528 RefClock->GetTime: 437250532084, tick dif: 46, time dif: 56.1042
00001563 RefClock->GetTime: 437250572084, tick dif: 35, time dif: 4.0000
00001630 RefClock->GetTime: 437251541250, tick dif: 67, time dif: 96.9166
00001660 RefClock->GetTime: 437251851250, tick dif: 30, time dif: 31.0000
00001677 RefClock->GetTime: 437251891250, tick dif: 17, time dif: 4.0000
00001743 RefClock->GetTime: 437252464375, tick dif: 66, time dif: 57.3125
00001793 RefClock->GetTime: 437253070209, tick dif: 50, time dif: 60.5834
00001826 RefClock->GetTime: 437253512500, tick dif: 33, time dif: 44.2291
00001861 RefClock->GetTime: 437253762500, tick dif: 35, time dif: 25.0000
00001910 RefClock->GetTime: 437254358334, tick dif: 49, time dif: 59.5834
00001943 RefClock->GetTime: 437254683959, tick dif: 33, time dif: 32.5524
00001977 RefClock->GetTime: 437255013959, tick dif: 34, time dif: 33.0000
00002026 RefClock->GetTime: 437255517292, tick dif: 49, time dif: 50.3333
00002060 RefClock->GetTime: 437255667292, tick dif: 34, time dif: 15.0000

ffdshow Audio Decoder:

00001219 RefClock->GetTime: 422939980000
00001257 RefClock->GetTime: 422939980000, tick dif: 38, time dif: 0.0000
00001262 RefClock->GetTime: 422939980000, tick dif: 5, time dif: 0.0000
00001288 RefClock->GetTime: 422939980000, tick dif: 26, time dif: 0.0000
00001299 RefClock->GetTime: 422939980000, tick dif: 11, time dif: 0.0000
00001324 RefClock->GetTime: 422939980000, tick dif: 25, time dif: 0.0000
00001327 RefClock->GetTime: 422939980000, tick dif: 3, time dif: 0.0000
00001367 RefClock->GetTime: 422940220625, tick dif: 40, time dif: 24.0625
00001389 RefClock->GetTime: 422940450625, tick dif: 22, time dif: 23.0000
00001394 RefClock->GetTime: 422940500625, tick dif: 5, time dif: 5.0000
00001418 RefClock->GetTime: 422940740625, tick dif: 24, time dif: 24.0000
00001475 RefClock->GetTime: 422941305834, tick dif: 57, time dif: 56.5209
00001518 RefClock->GetTime: 422941733959, tick dif: 43, time dif: 42.8125
00001551 RefClock->GetTime: 422942057292, tick dif: 33, time dif: 32.3333
00001600 RefClock->GetTime: 422942557292, tick dif: 49, time dif: 50.0000
00001635 RefClock->GetTime: 422942903750, tick dif: 35, time dif: 34.6458
00001667 RefClock->GetTime: 422943233750, tick dif: 32, time dif: 33.0000
00001717 RefClock->GetTime: 422943733750, tick dif: 50, time dif: 50.0000
00001750 RefClock->GetTime: 422944053542, tick dif: 33, time dif: 31.9792
00001801 RefClock->GetTime: 422944573542, tick dif: 51, time dif: 52.0000
00001834 RefClock->GetTime: 422944891250, tick dif: 33, time dif: 31.7708
00001884 RefClock->GetTime: 422945391250, tick dif: 50, time dif: 50.0000
00001917 RefClock->GetTime: 422945721250, tick dif: 33, time dif: 33.0000
00001967 RefClock->GetTime: 422946221667, tick dif: 50, time dif: 50.0417
00002017 RefClock->GetTime: 422946731667, tick dif: 50, time dif: 51.0000
00002050 RefClock->GetTime: 422947062292, tick dif: 33, time dif: 33.0625
00002100 RefClock->GetTime: 422947562292, tick dif: 50, time dif: 50.0000
00002133 RefClock->GetTime: 422947894792, tick dif: 33, time dif: 33.2500
00002167 RefClock->GetTime: 422948224792, tick dif: 34, time dif: 33.0000
As you can see, the reference clock behaves very differently. With ffdshow, it sits still until 125ms after playback start. But then the reference clock progresses very near to the system clock. With the LAV Audio Decoder, the reference clock starts moving at once, but it moves in a very weird way, sometimes too fast, sometimes too slow. The jitter is so extremely high that madVR constantly changes its decisions on which video frames to display at which VSyncs.

fps
1st March 2011, 20:06
OK, interesting to hear.
Thanks for all the quick input to both of you :).

nevcairiel
1st March 2011, 20:06
Wonder if float output somehow confuses the audio renderer.

Try configuring ffdshow to only output Float, and try that.

fps
1st March 2011, 20:14
Also works flawless.

nevcairiel
1st March 2011, 20:21
Well then, i'm fresh out of ideas. I'll go through the code some.

Mercury_22
1st March 2011, 22:33
Fps it's not the only one having "not smooth playback" with LAVAudio
.....

Also when using LAVCAudio the playback it's NOT as smooth as when using MPC-HC's decoders (watch the green line in stats) !

But I'm using EVRCP

LAV Audio (http://img192.imageshack.us/i/lavaudio.png/)

MPC-HC Audio (http://img14.imageshack.us/f/mpchcaudio.png//)

Ger
2nd March 2011, 00:09
I see the same thing in the EVR-CP graphs. The EVR-CP graph looks messy with LAVAudio, but has a symmetrical sawtooth or flat pattern (depending on how well the frame rate/refresh rate matches I guess) with ffdshow audio.

I only switched back to EVR-CP recently to see if an old bug which forced me to EVR Sync in the past is still present. Now, if I use my old renderer, EVR Sync with the option "Sync video to display (http://www.ostrogothia.com/?page_id=1216)", there is no immediately noticeable difference in the graph between LAVAudio and other decoders.

pirlouy
2nd March 2011, 00:35
When using LAV 0.17, seeking is quite impossible for mpeg splitter with mpeg1 video (old videos). When using MPC-HC MPEG splitter, all is ok.

dann23
2nd March 2011, 06:36
@nevcairiel
you said that you're planning to make lav splitter compatible with media foundation. when do you plan to do this?

VenomousNinja
2nd March 2011, 07:43
When using LAV 0.17, seeking is quite impossible for mpeg splitter with mpeg1 video (old videos). When using MPC-HC MPEG splitter, all is ok.
Me too. I've tried some huge *.vob files - won't seek at all. But the built-in MPC-HC seeks well. My system Win 7 SP1 x64, and MPC-HC x64 build 1.5.1.2958.

nevcairiel
2nd March 2011, 08:18
@nevcairiel
you said that you're planning to make lav splitter compatible with media foundation. when do you plan to do this?
Media Foundation support has been put on hold until i find someone that is willing to work on some other components in the playback graph. I can provide splitter and audio decoder, but i cannot write a working video decoder, video renderer and proper player as well. Until i see more support from other developers for Media Foundation, i don't think i'll continue in that direction.

When using LAV 0.17, seeking is quite impossible for mpeg splitter with mpeg1 video (old videos). When using MPC-HC MPEG splitter, all is ok.

MPEG Seeking problems are ffmpegs fault, there isn't much i can do about that at this time.

I see the same thing in the EVR-CP graphs. The EVR-CP graph looks messy with LAVAudio, but has a symmetrical sawtooth or flat pattern (depending on how well the frame rate/refresh rate matches I guess) with ffdshow audio.


I could reproduce the issue on my work laptop, and found the issue. Its been fixed for the next version.

The problem was that the duration of audio packets was being calculated wrong, which apparently confused the audio renderer because it would then receive overlapping packages. A video renderer would start dropping frames, the audio renderer just screwed up his timings.. interesting to note that you didn't "hear" the problem.

Thanks for everyones input on the problem!

dann23
2nd March 2011, 12:55
Media Foundation support has been put on hold until i find someone that is willing to work on some other components in the playback graph. I can provide splitter and audio decoder, but i cannot write a working video decoder, video renderer and proper player as well. Until i see more support from other developers for Media Foundation, i don't think i'll continue in that direction.


I didn't asked for video renderer or player. Just the splitter. WMP12 is good enough as player. I'm sure there are people who will need only need the splitter. I tried with divx but subtitles don't work.

nevcairiel
2nd March 2011, 13:04
There is no video decoder or renderer with subtitle support for Media Foundation.

dann23
2nd March 2011, 13:23
There is no video decoder or renderer with subtitle support for Media Foundation.

are you saying that it's not tehnically possbile? if so, how can I insert subtitles when I user wmp12?

nevcairiel
2nd March 2011, 13:36
You can't, unless someone codes a video decoder that supports them, or something like vsfilter that patches them onto a decoded video frame.

Microsoft does not have support for subtitles in their media foundation components. If you happen to get subtitles in WMP12, its much more likely that it did fallback to DirectShow for some reason.

dann23
2nd March 2011, 14:14
this sucks in a way but I found this plugin for wmp.
http://sourceforge.net/projects/wmpsub/
So if it'n not very difficult to make lav splitter compatible with media foundation, then I'm willing to test it.
the only problem is hardware acceleration and for which formats it's enabled in wmp. does anyone know this?

Midzuki
2nd March 2011, 14:43
this sucks in a way but I found this plugin for wmp.
http://sourceforge.net/projects/wmpsub/

http://forum.doom9.org/showthread.php?p=1478847#post1478847

nevcairiel
2nd March 2011, 14:48
So if it'n not very difficult to make lav splitter compatible with media foundation, then I'm willing to test it.

If it would be so trivial, it would've been done already. :rolleyes:

I am all for Media Foundation, but i cannot use it without proper support. I don't like WMP, and the default EVR Renderer is rather crappy. I even wrote a prototype player some time ago, until i noticed how bad the default EVR is. Until someone at least comes up with a proper renderer for media foundation, i have no personal motivation to work on it anymore, because i just would not use it.

I realize that someone has to start somewhere, but its really a bad situation. You cannot build a player just around the MS tools, because the EVR is seriously bad (the one WMP uses is different then the one 3rd party apps can access), and no-one is going to work on a renderer without a player that could actually use it ... so unless enough people come together for a joint project, i don't see much going on in that direction.

Virtual_ManPL
2nd March 2011, 15:35
@ nevcairiel - could you please look in bug # 31 - Frame dropping in some certain files (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/31) if you will have some spare time
it's the main problem for me right now, making LAV Splitter unusable in my case, because I see frame dropping in many MKV files

dann23
2nd March 2011, 17:31
Seems I hit a dead end. subtitles works if they are external files but the ones embedded in the mkv container are useless. It seems I'm stuck with ffdshow and lav splitter unless anyone has a better ideea.

pirlouy
2nd March 2011, 19:12
MPEG Seeking problems are ffmpegs fault, there isn't much i can do about that at this time.

So how does the MPC-HC splitter ? it does not use ffmpeg ? Or it uses a trick ?

nevcairiel
2nd March 2011, 19:13
the mpc-hc splitter does not use ffmpeg.

In fact, LAV Splitter is the only DS splitter that does. (known to me)

Mercury_22
2nd March 2011, 19:51
Your fix for LAV Audio it's working !
Now there is a "smooth" playback :p:thanks:

P.S. Will you consider opening a MPC-HC branch with LAV filters integrated (as an option to MPC-HC's internal)? Cause I think will bring more testers for your filters

EDIT: Small request in LAV Audio -> Properties->Status->Channel Output I think it will make more sens to use this order L, C, R, SL, SR, BL, BR, LFE instead of the current one

nevcairiel
2nd March 2011, 20:28
P.S. Will you consider opening a MPC-HC branch with LAV filters integrated (as an option to MPC-HC's internal)? Cause I think will bring more testers for your filters
I'll do this at some point, yes. But i don't know when.


EDIT: Small request in LAV Audio -> Properties->Status->Channel Output I think it will make more sens to use this order L, C, R, SL, SR, BL, BR, LFE instead of the current one

The order is the same as the data is send in the PCM packets, and that will not change. Would be overly complicated to remap that anyway :D

josey_wells
3rd March 2011, 00:40
I just want to say that the LAV Video splitter is fantastic. I was having issue with Blu-ray m2ts files in MPC Home Cinema and Zoom Player with Haili and Gabtest with jumpy video and video/audio sync.

The LAV splitter fixed everything and allowed smooth hi-def playback.

Keep up the good work.

fastplayer
3rd March 2011, 10:54
Keep up the good work.
I agree! :)
Seeking has never been more fun than it is right now with LAV! :thanks:

Aleksoid1978
5th March 2011, 02:19
Hi to ALL.
I have issue with LAV + VC1 + Cyberlink Decoder + MKV.

MKV+VC1+LAV+CyberlinkDecoder:
http://img683.imageshack.us/img683/9513/vc1cyberlinkdecoder.th.png (http://img683.imageshack.us/i/vc1cyberlinkdecoder.png/)

MKV+VC1+LAV+MPCDecoder:
http://img844.imageshack.us/img844/4885/vc1mpcdecoder.th.png (http://img844.imageshack.us/i/vc1mpcdecoder.png/)

mindbomb
5th March 2011, 02:39
turn on frame time correction

leeperry
5th March 2011, 04:24
Hi, I did some tests w/ the audio decoder...but its performance lacks quite a bit for me. Is it still a very early alpha/beta? I get a lot of random sound cuts(I've got an o/c Q9450)...everything's fine w/ ffdshow.

There's a genius plan in progress to remove all 32fp AC3/DTS decoders from ffdshow, so I would very much like to be able to use your decoder...otherwise I'll be stuck w/ an old ffdshow beta build until the end of days. Besides sansnom05's has managed to unlock 32fp in libavcodec(using madshi's patch) for DTS but for AC3, 2 channels are swapped.

Aleksoid1978
5th March 2011, 05:06
turn on frame time correction

But with MPCVideoDecoder don't have this issue.

P.S. AVSplitter from russain play fine in MPC-HC - MKV+VC1+Cyberlink without enable "Frame time correction".
link - http://www.multiupload.com/DG5LP37XCN

nevcairiel
6th March 2011, 15:53
I have issue with LAV + VC1 + Cyberlink Decoder + MKV.


The problem is that VC-1 timestamps are so screwed up. I added some code to LAV Splitter to fix those timestamps, so ffdshow, MPCVideoDec and the MS DMO Decoder work properly with it.
Sadly, Cyberlink expects the timestamps "unfixed", and fixes them again.
The next version will have a fix for that, to disable the timestmap fixing when the Cyberlink Decoder is in use.

Hi, I did some tests w/ the audio decoder...but its performance lacks quite a bit for me. Is it still a very early alpha/beta? I get a lot of random sound cuts(I've got an o/c Q9450)...everything's fine w/ ffdshow.
There was a bug in 0.17 (and prior) that potentially caused this. Check back with 0.18 once its out.

I just read up on the arguments on the ffdshow thread, and removing the other third-party libs is a good thing, imho. Why he refuses to accept simple patches to output fp32 from avcodec, i don't understand. The patches are so super simple, give me a list of important codecs, and i can make you patches for them, assuming they decode to float internally anyway.
If he seriously waits for ffmpeg to disable the forced sample conversion to int16 ... good luck. They are working on the audio API currently, but only on the user-frontend, not anything decoding or processing related.

mindbomb
6th March 2011, 20:42
so, in the next version, you don't need frame time correction for vc-1 and/or mpeg2 anymore?

clsid
6th March 2011, 20:46
There's a genius plan in progress to remove all 32fp AC3/DTS decoders from ffdshow, so I would very much like to be able to use your decoder...otherwise I'll be stuck w/ an old ffdshow beta build until the end of days. Besides sansnom05's has managed to unlock 32fp in libavcodec(using madshi's patch) for DTS but for AC3, 2 channels are swapped.The swapped channels is a bug in madshi's path. There is a new test build in the ffdshow topic for fp32.

nevcairiel
6th March 2011, 20:46
so, in the next version, you don't need frame time correction for vc-1 and/or mpeg2 anymore?

At least for VC-1, you should've never needed it when using LAV Splitter, at least when running with ffdshow or MPC Video Dec (or MS DMO Decoder, but that sometimes had some other problems)
The change in the next version is only for Cyberlink (and potentially ArcSoft - untested) decoders.

I didn't even know mpeg-2 had the same issue, never noticed it.


The swapped channels is a bug in madshi's path. There is a new test build in the ffdshow topic for fp32.
It indeed is. I created new patches for this, all available in my ffmpeg repository that i use for LAV Splitter/Audio Decoder, also includes a patch for AAC. Feel free to use them (also up-to-date for nearly latest ffmpeg (2 weeks ago or so, not much changed since then))
http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary

leeperry
6th March 2011, 21:33
OK, thanks for the infos! and indeed clsid, your patch passes 32fp for both AC3 & DTS...please commit \o/

I still could use an external decoder for the very reason that some 5.1 AC3 streams are apparently tagged as stereo...here's a sample: http://www.mediafire.com/?mn23gioeoug

This makes my automatic profiles in ffdshow fail...it loads the stereo profile http://forum-images.hardware.fr/icones/ohwell.gif

I also had the problem that many(most?) DS audio decoders first tell a dummy number of channels at the first connection, then disconnect/reconnect and give the right one..that also fubars my ffdshow audio automatic profiles big time. AC3Filter and Gabest's MPC audio decoder say 5.1 even if it's stereo, madFlac never lies...neither does Sonic 4.2(but you can't disable DRC in Sonic).

So if your audio decoder could always provide the right number of channels, this might become my new foolproof 32fp AC3/DTS solution..even for wrongly tagged AC3's http://forum-images.hardware.fr/icones/smilies/love.gif

nevcairiel
6th March 2011, 21:37
For the initial connection, the channel count provided by the source/splitter is used, because i just don't have any data packages to confirm if its correct (except if the codec has private data thats being submitted with the media type that contains this information - ac3 doesn't have this, afaik).
In theory, LAV Splitter should always get that right though, because it decodes a few packages to get all relevant information out of the stream.

The Sample you linked up there, for example, is properly being detected as 5.1 by LAV Splitter. (Note, however, that it does not usually load for raw .ac3 files, you can make it load the file in GraphStudio to confirm, though.)
As noticed earlier in this thread, my main goal is to provide a nearly perfect environment if using all of my filters. I just have to rely on some information the splitter gives me, and if the splitter is buggy, well, can't help it.

madshi
6th March 2011, 21:45
The swapped channels is a bug in madshi's path. There is a new test build in the ffdshow topic for fp32.
It indeed is. I created new patches for this, all available in my ffmpeg repository that i use for LAV Splitter/Audio Decoder, also includes a patch for AAC.
Sorry for the bug in my patch. I didn't notice it since eac3to remaps all channels, anyway.

And my cheers to clsid and nevcairiel. I'm very glad that you guys care about audio quality and are willing to do something about it... :)

leeperry
6th March 2011, 21:46
For the initial connection, the channel count provided by the source/splitter is used [..]

The Sample you linked up there, for example, is properly being detected as 5.1 by LAV Splitter. (Note, however, that it does not usually load for raw .ac3 files, you can make it load the file in GraphStudio to confirm, though.)
Ideally, I'd like to stick to HMS..I would only need a 32fp AC3/DTS decoder that states the number of channels to ffdshow audio(that I've forced) after actually checking. If this kind of wrongly tagged AC3 could come up as 5.1 to ffdshow, this would be fantastic. IIRC, Sonic 4.2(using HMS) tells 5.1 to ffdshow for this very sample.

I just read up on the arguments on the ffdshow thread, and removing the other third-party libs is a good thing, imho.

There's a "-3dB dialog normalization" bug in ffdshow's liba52 implementation(I've provided proofs for this in this thread (https://forum.doom9.org/showthread.php?t=156966)), but better get -3dB 32fp than 16int http://img690.imageshack.us/img690/8138/icecreamt.gif

nevcairiel
6th March 2011, 21:48
The whole DirectShow filtergraph is already setup before the decoder sees ANY data to decode. If the splitter sends the data wrong, there is nothing the decoder can do, sorry. (Excluding the cases where it can decode the private data in the media type)

madshi
6th March 2011, 21:56
The whole DirectShow filtergraph is already setup before the decoder sees ANY data to decode. If the splitter sends the data wrong, there is nothing the decoder can do, sorry. (Excluding the cases where it can decode the private data in the media type)
The decoder can at any time do a dynamic format change. See here:

http://msdn.microsoft.com/en-us/library/dd388731%28v=vs.85%29.aspx

I know this cause I had to implement support for this in madVR... :p ffdshow supports dynamic format changes, too, AFAIK.

nevcairiel
6th March 2011, 21:59
The decoder can at any time do a dynamic format change. See here:

http://msdn.microsoft.com/en-us/library/dd388731%28v=vs.85%29.aspx

I know this cause I had to implement support for this in madVR... :p ffdshow supports dynamic format changes, too, AFAIK.

I support this just fine, the problem he has is with ffdshow profiles, which are only based on the initial connection, so he needs that to be correct.

madshi
6th March 2011, 22:01
Ah ok, didn't know that the profiles are based on the initial connection, only.

leeperry
6th March 2011, 22:10
I support this just fine, the problem he has is with ffdshow profiles, which are only based on the initial connection, so he needs that to be correct.
ffdshow video can switch profiles on the fly, but ffdshow audio can't, it's picked once and for all at the DS graph initialization...I wish it could http://forum-images.hardware.fr/icones/ohwell.gif

PS: It seems to be due to HMS indeed, everything's recognized as it should using your splitter :)

PPS: You don't provide any option to change the "input buffer size" like in HMS? When seeking within a MKV on a DVD-R, it can be jerky...I can even completely lose the audio for a few secs.

Also, HMS has good error resilience when seeking in broken MKV's..does yours too?

Anyway, PotPlayer has a lot of options to have the audio/video bitrate/bitdepth/number of channels displayed on the skin...and very often all HMS had to tell PotP was "0", duh. Now I get my magic numbers each time, too cool :)

nevcairiel
7th March 2011, 11:43
Input Buffer doesn't really help that much when seeking on a slow medium. Once the seek request finishes, LAV Splitter will immediately start demuxing again, and run the demuxer constantly until the buffer is filled again (around 100 packets), while another thread starts dispatching those packets to the decoders while the demuxer is still powering through the file to fill the buffer. I don't see how any buffer changes can reduce that latency.

I'm always open to improving seeking, as its usually one of the things a splitter either shines at, or is total crap. LAV Splitter supports key-frame/index seeking as used by MPC-HC, which greatly improved seeking performance in MKV (and some other formats).
I've also got some feedback that seeking is really working well, at least with MKV. MPEG-TS seeking is always a bit weird, but it feels "ok" to me, at least on BluRay media, which is usually "good" MPEG-TS. DVB captures are most of the time just broken, because the capture apps have incomplete or broken muxing tools. :/

For the error resilience, thats all in the hands of ffmpeg. Feel free to throw some corrupted files at it, and see what happens.

leeperry
7th March 2011, 20:47
I'm always open to improving seeking, as its usually one of the things a splitter either shines at, or is total crap. LAV Splitter supports key-frame/index seeking as used by MPC-HC, which greatly improved seeking performance in MKV (and some other formats).
I've enabled keyframe seeking in PotPlayer, it works like a charm w/ HMS and the built-in MKV splitter. Very fast seeking, no hiccup and I never lose audio. Lemme know if there's any way I could provide you w/ logs or something? I've encountered the problem when reading MKV(h264+1.5mbit DTS) from DVD-R, and I was using CDBremse to slow down the 16X Liteon XJ-HD166S drive to 6X(it becomes hardly audible).

nevcairiel
7th March 2011, 21:25
I can burn some MKV to a DVD-R and test with that, i guess. AnyDVD offers a slow-down option, i'll run it on the slow & quiet preset, not sure what speed that is effectively.

I should also add some logging for users to see, right now all logging is only with a proper debugger *shrug*

leeperry
8th March 2011, 01:45
So as I said, PotPlayer has an option for keyframe seeking: http://thumbnails36.imagebam.com/12264/3e2573122636717.jpg (http://www.imagebam.com/image/3e2573122636717)

Seeking in MKV(h264+448kbit AC3) w/ this option checked, I've got the exact same problems as when seeking from a DVD-R...I lose the audio for a few secs after seeking, it also stutters and sometimes stalls for a second or two.

If I uncheck the option, I can easily get it to freeze PotPlayer completely. HMS works fine w/ both options, but seeking is slower if it's unchecked.


I run XPSP3, and here's my active filter list:
[Used Filter List]
(1) LAV Splitter
(2) CoreAVC Video Decoder (CUDA in use)
(3) ffdshow Video Decoder
(4) Madshi Video Renderer
(5) ffdshow Audio Decoder
(6) ReClock Audio Renderer

I'll be glad to run any debug version, and if you wanna try to recreate the problem, you can find PotPlayer here (http://www.dvbsupport.net/download/index.php?act=view&id=230)(I'd advise to use 7-Zip and only extract PotPlayerMini.exe & PotPlayer.dll...the rest is just bloat).

I mentioned error resilience because HMS copes a lot better w/ broken MKV's than the built-in PotPlayer/KMP MKV splitters...the latters usually freeze the player when encountering broken frames, OTOH HMS allows you to reseek easily.

nevcairiel
8th March 2011, 08:00
Seeking in MKV(h264+448kbit AC3) w/ this option checked, I've got the exact same problems as when seeking from a DVD-R...I lose the audio for a few secs after seeking, it also stutters and sometimes stalls for a second or two.

On a file from HDD, seeking in MPC-HC with Key-Frame seeking is always instant for me, without its not instant, but audio resumes right away, video is a bit jerky until the decoder gets the next keyframe .. but thats the same with any splitter i tried.
As i mentioned earlier, alot of people confirmed these findings with MPC-HC. Not sure if its really a player thing.

I'll test from a slow optical medium, and try that PotPlayer.

madshi
8th March 2011, 08:17
Just a thought: Any splitter can issue a seek command through the graph interface methods. Maybe it would be a nice trick for the splitter to "fine tune" any user seek request by issuing a correction seek command to the nearest video key frame? The net effect should be similar to seeking in MPC-HC with Key-Frame seeking enabled. However, it should work with any media player.

nevcairiel
8th March 2011, 08:20
I actually had something like that planned for the future, but as MPC-HC is my main target, i didn't give it any high priority.

madshi
8th March 2011, 08:40
Nice. :)

nevcairiel
8th March 2011, 08:45
In theory it shouldn't even be needed to issue another seek request. The IMediaSeeking::SetPosition call is not guaranteed to end up on that spot exactly, i could just change the target position before doing the actual seek, and the player would then receive the new current position either through the argument it put in (its a pointer for a reason), or by calling GetCurrentPosition afterwards.

I hope the filter graph is smart enough to fix the reference clock in this case. Something to test.

This of course depends on the player being developed sanely.

madshi
8th March 2011, 09:02
In theory it shouldn't even be needed to issue another seek request. The IMediaSeeking::SetPosition call is not guaranteed to end up on that spot exactly, i could just change the target position before doing the actual seek, and the player would then receive the new current position either through the argument it put in (its a pointer for a reason), or by calling GetCurrentPosition afterwards.
As far as I understand the MS documentation, your SetPositions implementation should only modify the position value if the "AM_SEEKING_ReturnTime" is set.

I hope the filter graph is smart enough to fix the reference clock in this case. Something to test.

This of course depends on the player being developed sanely.
What does the player have to do with it? The true playback position is maintained by the graph, not by the media player. The media player doesn't call SetPositions on your filter directly, instead it calls SetPositions on the graph's IMediaSeeking interface. The graph will then as a result loop through all filters in the graph and call their IMediaSeeking::SetPosition methods. Which means that it probably doesn't matter how the media player is written. You returning a different seek position in your SetPositions implementation will require the graph to accept the change - not the media player. So whether your idea will work should not depend on the media player, but on the OS.

FWIW, I rather doubt it will work, but it might be worth a try. If it does work, I would recommend to test it in all OSs, just to be safe... :p

nevcairiel
8th March 2011, 09:07
As far as I understand the MS documentation, your SetPositions implementation should only modify the position value if the "AM_SEEKING_ReturnTime" is set.


I understand AM_SEEKING_ReturnTime somewhat differently. To me it sounds like that when its set, the return value should always be converted to REFERENCE_TIME, no matter what the time format of the stream currently is.

In any case, dispatching a new seek request would work as well.

madshi
8th March 2011, 09:14
I understand AM_SEEKING_ReturnTime somewhat differently. To me it sounds like that when its set, the return value should always be converted to REFERENCE_TIME, no matter what the time format of the stream currently is.
Yes yes, that's correct. What I meant to say is that AM_SEEKING_ReturnTime is the only thing in the documentation that mentions modifying the position values. When AM_SEEKING_ReturnTime is not set, the doc does not mention that you could/should change the position values.

nevcairiel
8th March 2011, 09:58
You're right, its not really documented like that.
Oh well, i'll just do it with another seek request, just have to be careful to not create a loop there. :)

pankov
8th March 2011, 10:28
guys,
I might be guessing here but would this change from "precise seek" to "key frame seek" break the frame by frame stepping that ZoomPlayer and other players have?
Excuse my ignorance if this has nothing to do with your conversation.

nevcairiel
8th March 2011, 10:30
guys,
I might be guessing here but would this change from "precise seek" to "key frame seek" break the frame by frame stepping that ZoomPlayer and other players have?


Yes it would. But i wouldn't have it always on, but offer an option to enable/disable it.

madshi
8th March 2011, 10:30
Frame by frame *forward* stepping is realized in a different way, without seeking, I believe (at least in MPC-HC). To be honest, I'm not sure how stepping backwards is done, though.

leeperry
8th March 2011, 12:50
Well, to me the point of using your splitter is rather clear...here I get the AC3 bitrate right on the PotPlayer transport bar(as I've always dreamed about): http://thumbnails37.imagebam.com/12269/d06a41122686139.jpg (http://www.imagebam.com/image/d06a41122686139)

HMS simply says "0": http://thumbnails31.imagebam.com/12269/74d86c122686134.jpg (http://www.imagebam.com/image/74d86c122686134)

I've spoken to Haali about those problematic samples (http://forum.doom9.org/showpost.php?p=1482783&postcount=75), and his splitter simply repeats verbatim what's written in the MKV itself. If I demux/remux those 2 samples using mkvtoolnix 4.0, then they're both properly detected as 5.1 :confused:

These 2 samples were muxed by 2 different ppl using different versions of mkvmerge, so I dunno wth is going on(even MediaInfo sees them as stereo)....anyway, it's only a side effect of the fact that HMS simply repeats what's written in the container header, when OTOH your splitter actually checks for the bitrate/number of channels of the streams...which provides all the right infos about bitrate/number of channels to the DS graph filters. I would very much appreciate if you could bring the seeking operations(using PotPlayer) to the foolproof status of HMS. :thanks:

PS: HMS tells the bitrate of FLAC soundtracks(using madFlac), but your splitter simply says "0". I can make a sample.

PPS: humm yeah, I've seeked in a MKV(h264+20bit 7.1 FLAC, authored w/ mkvtoolnix 4.0) a few times, and then seeking didn't work anymore...no picture/no sound. PotPlayer hadn't locked up, though.

nevcairiel
8th March 2011, 14:07
Bitrate info is purely cosmetic and not really my main concern. Some ffmpeg codecs don't export bitrates, maybe flac is one of those. I can check if it somewhere stores the container supplied bitrate value, though.

nevcairiel
8th March 2011, 16:26
Okay, i tried alot of my files with PotPlayer (all from local HDD or my network storage), and seeking is as smooth as it is in MPC-HC, no issues whatsoever.
This was with ReClock, madVR, ffdshow audio and video. Switching to CoreAVC for decoding, its still fast, but takes maybe half a second after seek to produce an image - does not matter if i have ffdshow raw video processor in there, or not. I would guess flushing the hardware pipeline could possible be slightly slower.

Vanilla PotPlayer settings, except filter choices (decoders mostly set to system default instead of internal, renderers to reclock and madvr respectively)

I could not produce any freezes, or anything of that sort. Seeking was a pleasure as i know it from MPC-HC. I can try from an optical media on the weekend, but seeking in BluRays was working just fine the last times i tried.

leeperry
8th March 2011, 17:38
OK, thanks for testing on your end. Did you try on XPSP3?

I can easily get this sample to freeze PotPlayer completely(in D3D excusive mode), read from a fairly fast HDD: http://www.mediafire.com/?86bj8hpgilgy242

Filter list:
[Used Filter List]
(1) LAV Splitter (0.17)
(2) CoreAVC Video Decoder 2.0 (CUDA active, using the 257.21 drivers and latest DX9.0c update)
(3) ffdshow Video Decoder (ffdshow_rev3771_20110307_xhmikosr_icl12.exe)
(4) Madshi Video Renderer (0.43)
(5) ffdshow Audio Decoder
(6) ReClock Audio Renderer (1.8.7.3)

I've disabled all internal filters in PotPlayer, using the latest PotPlayer beta(from a few days ago), and my own TMT3 modded skin: http://www.mediafire.com/?w9owhawg7a7jyav

Sometimes I lose the audio for a few secs, sometimes it locks up for one second, sometimes it stutters, and finally sometimes it locks up PotPlayer completely(very easy to reproduce). HMS works like a charm, and I do have "move by keyframe" checked in PotP.

nevcairiel
8th March 2011, 17:40
I'm only testing on Win7, i don't feel like supporting a legacy version of the OS. :P .. not that i have any box thats still left on XP (and capable of running madVR). My Work laptop is XP, i can try running it there, but no madVR or ReClock there.

I'll test with that sample, see if its anything special.

I'll also add some more logging and make it log to a file, maybe for the next version, we'll see how my free time goes.

Edit:
Sample is just fine.

leeperry
8th March 2011, 22:04
Legacy? XPSP3 is still fully supported by m$, and all the stats in the world prove that there are still billions of ppl using XP...one random example: http://www.w3schools.com/browsers/browsers_os.asp
Windows XP is the most popular operating system

XP gets the job done. Ignoring XP users is pretty drastic...for what we know atm, the problem might come from something else too. HMS works wonderfully, never a single hiccup or lockup. I'm sorry to rub it in, and I realize that your product is not in competition w/ HMS.

nevcairiel
8th March 2011, 22:38
I don't care about statistics. I also don't care about anyones opinion, use whatever OS you want. I'll use the one i like.
I just don't have any real XP box to work on, and i do not have the time (nor motivation) to set one up, or run all tests on multiple systems. If it comes down to being a XP problem, well, bad to be a XP user, i guess. Its all open source though, so if any coder is using XP, or feels strongly about XP support, i welcome any contributions.

Personally, i doubt its a XP issue, or more people would've complained already.

Also, HMS is nearly as old as XP, of course it had alot more time to mature, and yet, its still full of bugs, and every version adds new ones.

leeperry
8th March 2011, 22:46
oh yah, the good ole' "patches are welcome" :D

I'll be on the lookout for any update then, :thanks:

nevcairiel
9th March 2011, 09:35
I just tried your starwars sample from above on my XP work Laptop, like mentioned without madVR or ReClock, EVR Custom and default DirectSound instead. Works like a charm. I cannot run more extensive tests, because, well, i should be working. :P

Did you try changing decoders, or renderers, to see if the problem persists?

In other news, i implemented automatic detection for VC-1 timestamp correction, so when the (new) configuration is set to "Auto" (default), it'll turn off the timestamp correction if the cyberlink decoder is detected.

Anyone using the ArcSoft decoder for VC-1? I remember people saying that they had the same timing issues that people reported for Cyberlink.
If so, please try http://files.1f0.de/lavf/LAVSplitter-0.17-vc1-test2.zip and see if its running smooth with the ArcSoft decoder.

Mercury_22
9th March 2011, 11:20
I've register ArcSoft video decoder (TMT3) and set it as preferred and on the top of MPC-HC's External Filters list but I can't connect to it using either LAVSplitter or MPC-HC's Splitter. What am I missing here ?

nevcairiel
9th March 2011, 11:53
Try adding this GUID as a new subtype to the arcsoft decoder in the external filter list "{D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}". I'm not sure if it works like this, though. Sadly i forgot to add the ArcSoft Media Type to the splitter .. i'll do that when i get to my development system.

leeperry
9th March 2011, 12:13
I just tried your starwars sample from above on my XP work Laptop, like mentioned without madVR or ReClock, EVR Custom and default DirectSound instead. Works like a charm. [..]
Did you try changing decoders, or renderers, to see if the problem persists?
Just did yeah, using VMR9/DS/CoreAVC(CUDA disabled), I even disabled my Avisynth/winamp DSP plugins. Very often everything's frozen for a fews secs when I seek(even the mouse pointer)...and I also got it to lockup PotP completely.

I use an o/c Q9450 and it would appear that there's a thread deadlock or something...I dunno.

Mercury_22
9th March 2011, 14:12
Try adding this GUID as a new subtype to the arcsoft decoder in the external filter list "{D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}". I'm not sure if it works like this, though. Sadly i forgot to add the ArcSoft Media Type to the splitter .. i'll do that when i get to my development system.

Not working :confused:

P.S. I have TMT 3.0.1.185

nevcairiel
9th March 2011, 14:21
Don't worry about it, i'll add the proper media type in the code and test when i have the time.

nevcairiel
9th March 2011, 16:07
Not working :confused:

P.S. I have TMT 3.0.1.185

If you care to use it, here is a guide how to get the codec working outside of TMT3

http://www.avsforum.com/avs-vb/showthread.php?p=19420488#post19420488

The next version will have proper VC-1 support in conjunction with both the Cyberlink and the ArcSoft decoders.

Mercury_22
9th March 2011, 16:38
If you care to use it, here is a guide how to get the codec working outside of TMT3

http://www.avsforum.com/avs-vb/showthread.php?p=19420488#post19420488

The next version will have proper VC-1 support in conjunction with both the Cyberlink and the ArcSoft decoders.

:thanks: Working now !

P.S. I knew about that guide but I thought that's just for the audio decoder
I'll compile the latest version of LAV later and do more tests

Edit: Compiled and did a few test and it's working great !
A small bug: it seems that the splitter can't identify the language in the PGS subs from m2ts stream it shows "S:stream#4" instead of "eng"
Also the word grey (for Auto) in the VC-1 tool-tip it's not quite accurate :) (it's more a blue)

nevcairiel
9th March 2011, 17:47
A small bug: it seems that the splitter can't identify the language in the PGS subs from m2ts stream it shows "S:stream#4" instead of "eng"

Thats most likely a BluRay, yes? BluRays don't have languages in their m2ts files, you need to parse the playlist for that. Thats my next big thing on the TODO.


Also the word grey (for Auto) in the VC-1 tool-tip it's not quite accurate :) (it's more a blue)

Yeah.. naming it any color is really not that great. How do you call the third state of a checkbox?

fastplayer
9th March 2011, 17:53
Yeah.. naming it any color is really not that great. How do you call the third state of a checkbox?
Try "Indeterminate".

nevcairiel
9th March 2011, 17:56
Would a user know what i mean with that? :P
I could just name it "Auto" and hope they figure it out. Its the default, too!

fastplayer
9th March 2011, 18:02
Would a user know what i mean with that? :P
I could just name it "Auto" and hope they figure it out. Its the default, too!
I think it's safe to assume that users who deal with VC-1 timestamp stuff, know about three-state checkboxes. :p

Mercury_22
9th March 2011, 18:13
1 Yes it's a Blu-ray
2 Try "Full" or "Square mark"
3 Now there is an audio delay / out of sync when opening an mkv file but NOT from the beginning and using Arcsoft video decoder! When using MPC-HC's internal splitter or using other video decoder with LAVSplitter or using other container (e,g, m2ts) ther is no more audio delay / out of sync ! The audio delay / out of sync disappear after a small seek

nevcairiel
9th March 2011, 18:13
LAV DirectShow Filters 0.18
LAV Splitter
- Improved compatibility when decoding VC-1 with the ArcSoft and Cyberlink Decoders
- Increased the splitters merit
- Fixed an issue that caused the splitter to deadlock when changing streams with madVR

LAV Audio Decoder
- Fixed a bug that caused sample durations to be calculated wrong, causing playback glitches

Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.18.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.18-x64.zip)

Thanks to the guys over at the MediaPortal forum for testing and confirming that the fix for the Cyberlink and ArcSoft decoders works.

If no more bugs come up that i have to fix urgently, i'll be working on BluRay support next, so stay tuned.

SamuriHL
9th March 2011, 18:17
Excellent progress! Thanks for your hard work!!

nevcairiel
9th March 2011, 18:21
3 Now there is an audio delay / out of sync when opening an mkv file but NOT from the beginning and using Arcsoft video decoder! When using MPC-HC's internal splitter or using other video decoder with LAVSplitter or using other container (e,g, m2ts) ther is no more audio delay / out of sync ! The audio delay / out of sync disappear after a small seek
Yeah it looks like the ArcSoft decoder is still not working perfectly with it.
But Cyberlink is perfect for me, and the decoder is basically "free", you can get it from the PDVD Trial version without any modifications, just register it and it works - and it does DXVA with interlaced material, which is the main reason people seem to be using it.

One thing i noticed, though. In Software decoding mode its perfect, in Hardware mode i still have to turn on "Enable Frame Time Correction" in MPC-HC, but when thats on, its just perfect.

SamuriHL
9th March 2011, 18:26
Yeah it looks like the ArcSoft decoder is still not working perfectly with it.
But Cyberlink is perfect for me, and the decoder is basically "free", you can get it from the PDVD Trial version without any modifications, just register it and it works - and it does DXVA with interlaced material, which is the main reason people seem to be using it.

Sorry, maybe I'm a little thick here...if I add the PDVD decoder to my external filters in MPC-HC, it will do DXVA? Hmm. That has some serious potential on my bedroom HTPC that doesn't have a lot of native power but has an nVidia 450 in it. I may have to check that out. Thanks!

nevcairiel
9th March 2011, 18:27
Yes, it does. The one from PDVD10 anyway, dunno about others. You have to enable DXVA in the decoders property page though!

Mercury_22
9th March 2011, 18:33
I'm using nero and it does DXVA with interlaced material too and also you just register it and nero (9)'s audio does dts-hd 7.1 and just needs registering But not with trial

SamuriHL
9th March 2011, 18:33
Yes, it does. The one from PDVD10 anyway, dunno about others. You have to enable DXVA in the decoders property page though!

When I tried that before the DXVA setting never "stuck". And never seemed to work. Guess I'll have to try it again.

nevcairiel
9th March 2011, 18:34
I just enabled DXVA for testing, and the setting seems to stick, and MPC-HC claims i'm using DXVA too.

Sebastiii
9th March 2011, 18:39
Thanks Nevcairiel :) will test new filter quickly.
Seb.

SamuriHL
9th March 2011, 18:42
I just enabled DXVA for testing, and the setting seems to stick, and MPC-HC claims i'm using DXVA too.

Alright, I'll test that again when I get a chance. I'd really like for that to work. The PDVD codecs are pretty decent quality so that'd be nice.

robpdotcom
9th March 2011, 18:58
To get DXVA in Cyberlink to stick, I have to do this:

Open MPC-HC > go to external filters and double-click Cyberlink Decoder > change decoding to DXVA. Then, without closing MPC-HC, drag a VC-1 encoded file into it.

You may also need to add GUID {31435657-0000-0010-8000-00AA00389B71} as a media subtype to MEDIATYPE_Video of CyberLink Video Decoder in MPC-HC's external filter page.

The bad thing about Cyberlink's decoder though: it doesn't seem to work well for VC-1 inside an mkv. For that, Arcsoft's decoder seems best when dealing with interlaced VC-1 (ironically, at least on my system, I get stuttering on progressive VC-1 inside mkv with Arcsoft :confused:).

nevcairiel
9th March 2011, 19:03
I have a VC-1 MKV of my Dark Knight BluRay that i created some time back for testing, and its working fine with Cyberlink. (of course thats progressive content)

The GUID thing shouldn't be needed with LAV Splitter.

With hardware decoding, i have to turn on MPC-HCs Frame Time Correction, though.

SamuriHL
9th March 2011, 19:20
Thanks, guys. Not sure if I'll get to play with this today or not. Been in training for work the past 2 days and as a result i'm playing catchup. This will be one of those 10 hour + days with not a lot of free time. But I definitely want to get this working if possible so I'll be looking at this asap.

robpdotcom
9th March 2011, 19:43
I have a VC-1 MKV of my Dark Knight BluRay that i created some time back for testing, and its working fine with Cyberlink. (of course thats progressive content)

The GUID thing shouldn't be needed with LAV Splitter.

With hardware decoding, i have to turn on MPC-HCs Frame Time Correction, though.

Small world, I always use Dark Knight for testing VC-1 playback as well.

I just tried enabling MPC-HC's Frame Time Correction, and it works beautifully - thanks for the tip. :thanks:

EDIT: Just tested with interlaced VC-1, and it works for that too. Really big thanks.

Plutotype
9th March 2011, 20:51
Hi,
0.18 tested, everything works ok.

What I would like to have on the splitter in the future:

- the possibility to downmix 7.1 to 5.1 or stereo PCM ( maybe too consumer oriented feature, but helpful in limited surround or stereo speaker setups )
- bitstreaming support - from that what I know, internal decoding to PCM 24/96 with Reclock gives the best A/V sync results ( because audio follows video clock already in the PC ). I do not have a hd receiver at home ( thanks also to Newcairel!:) ), but maybe somebody can share his experiences when bistreaming and using external receiver to decode the streams. What I would like to know is, if there is no A/V sync issue as mentioned here (http://forum.doom9.org/showthread.php?p=1471510#post1471510)

Thanks
Pluto

nevcairiel
9th March 2011, 20:53
Both of these are already planned. Downmixing in the audio decoder, of course, and bitstreaming in the splitter. :)
Not sure when i'll be able to do those, though.

SamuriHL
9th March 2011, 21:10
Come on, do bitstreaming. you know you wanna. :D

fastplayer
9th March 2011, 21:18
Both of these are already planned. Downmixing in the audio decoder, of course, and bitstreaming in the splitter. :)
Not sure when i'll be able to do those, though.
Maybe you could add a "planned features" section to your 1st post in this thread. This way you don't have to repeat yourself over and over again. Oh, and don't forget the mandatory "When it's done!" :D

SamuriHL
9th March 2011, 21:20
Maybe you could add a "planned features" section to your 1st post in this thread. This way you don't have to repeat yourself over and over again. Oh, and don't forget the mandatory "When it's done!" :D

Febru....oh, wait. :D

nevcairiel
9th March 2011, 21:37
I added a small section to my second post, but i also wrote a post on my new blog about plans, a bit more detailed (mostly about BD support), but again no time frames.

http://1f0.de/2011/03/lav-filters-0-18-future-plans/

All hail the default wordpress skin, and my few hours old blog. :P

fastplayer
9th March 2011, 21:48
A blog? That's even better, of course! :thanks:

nevcairiel
9th March 2011, 21:53
I just setup the thing a few hours ago, wonder how long i'll keep posting there %)

jmone
9th March 2011, 22:03
Well I just linked to your blog for the JR Media Center devs to see what your plans are (as per my PM did you contact them, they are keen to discuss what player support you may need for this)

adam777
9th March 2011, 22:03
Any idea regarding where, in terms of importance, pes streams rank?

nevcairiel
9th March 2011, 22:05
Well I just linked to your blog for the JR Media Center devs to see what your plans are (as per my PM did you contact them, they are keen to discuss what player support you may need for this)

I didnt contact them yet, i've been busy with work and out of town the last few days, but stuff is cooling down now, and i should manage to get all that done soon.
I also don't have a concrete interface yet, but that should come up in the next days/week too.


Any idea regarding where, in terms of importance, pes streams rank?
Its not that big of a project, i should be able to get it done somewhere in between.

jmone
9th March 2011, 22:34
Dumb Q - when upgrading can just update (eg copy over) the files, or should I run the uninstall / install bat files each time?

nevcairiel
9th March 2011, 22:39
Most of the time you can just copy the new version over, but some things, like the Merit change in 0.18, require you to re-register the filter. Same goes when adding new formats to either the splitter or decoder.. In general, its always safer to just re-register it. -- btw, uninstalling is usually never required, just running install again is fine. :)

jmone
9th March 2011, 23:02
Thanks - I'd also replug for the idea of adding the version number in the Filter pages (like other filters) so we know what we are loading (would have saved me looking foolish testing the wrong version!)

nevcairiel
9th March 2011, 23:04
Thanks - I'd also replug for the idea of adding the version number in the Filter pages (like other filters) so we know what we are loading (would have saved me looking foolish testing the wrong version!)

But where is the fun in that! :)
I'll try to remember to add that.

pankov
9th March 2011, 23:16
Guys,
does anybody know how I can check the file version of .ax files on Windows 7?
In Windows XP it was as simple as clicking properties in Windows Explorer but this doesn't work in Win 7 for .ax files. On other hand it does work for .dll files and .exe files.
Any ideas why is that? Am I messing something up?

SamuriHL
9th March 2011, 23:18
See previous comment above yours. Nev was lazy. :D

pankov
9th March 2011, 23:21
Well, it's not only that.
Try checking the same on other .ax files - it won't work. At least it doesn't for me.
If I rename the same file to .dll it will show it's version.
Of course for LAV filters it's an empty field but at least there is a field "Product version", while on .ax files there is no such field.
:(

SamuriHL
9th March 2011, 23:26
Seems to be a Win7 issue.

mindbomb
9th March 2011, 23:29
I still need frame time correction with the cyberlink vc-1 decoder from powerdvd 10, using mpc hc, and lav splitter .18, all 32 bit.
note the disparity between ftc off and on with this sample:
http://www.mediafire.com/?89rtj5yxn9hrkz1

i dont really mind using ftc, so its not a big deal.

also, this change of merit for lav splitter, what does it mean practically for users?

fps
9th March 2011, 23:43
LAV Audio Decoder
- Fixed a bug that caused sample durations to be calculated wrong, causing playback glitches

Thanks very much, I didn't encouter the previous playback problems after some quick testing :).

mindbomb
10th March 2011, 02:26
Sorry, maybe I'm a little thick here...if I add the PDVD decoder to my external filters in MPC-HC, it will do DXVA? Hmm. That has some serious potential on my bedroom HTPC that doesn't have a lot of native power but has an nVidia 450 in it. I may have to check that out. Thanks!

not only will it do DXVA with newer cards, it does DXVA for vc-1 with cards as old as the geforce 6600gt.
for h264 and mpeg 2, i prefer the microsoft dtv-dvd video decoder that comes with win 7 though.

SamuriHL
10th March 2011, 03:00
not only will it do DXVA with newer cards, it does DXVA for vc-1 with cards as old as the geforce 6600gt.
for h264 and mpeg 2, i prefer the microsoft dtv-dvd video decoder that comes with win 7 though.

I'll have to play around with it all when I get a chance. For my main machine, not a problem as I use software decoding. But for that machine, I need some DXVA going on. I'll figure it out.

boyumeow
10th March 2011, 04:26
@mindbomb, higher merit for lav splitter than other splitter (e.g. haali). Thanks.

SamuriHL
10th March 2011, 05:19
Small world, I always use Dark Knight for testing VC-1 playback as well.

I just tried enabling MPC-HC's Frame Time Correction, and it works beautifully - thanks for the tip. :thanks:

EDIT: Just tested with interlaced VC-1, and it works for that too. Really big thanks.

Where is the frame time correction setting? Thanks!

Edit - found it. Rendered settings.

adam777
10th March 2011, 07:43
Any idea regarding where, in terms of importance, pes streams rank?

Its not that big of a project, i should be able to get it done somewhere in between.
:thanks:

nevcairiel
10th March 2011, 07:53
I still need frame time correction with the cyberlink vc-1 decoder from powerdvd 10, using mpc hc, and lav splitter .18, all 32 bit.
note the disparity between ftc off and on with this sample:
http://www.mediafire.com/?89rtj5yxn9hrkz1

i dont really mind using ftc, so its not a big deal.


My testing showed that in Software decoding mode, its fine without FTC, but if i enable DXVA, i need FTC again. Thats so weird!
In any case, I'm not sure if i can solve that, apparently DXVA screws with the timestamps for some reason, so running with FTC might be the easiest solution.

clsid
10th March 2011, 13:17
Could you perhaps implement a "Automatic FTC" in MPC-HC? The idea is as follows:
- Let the renderer enumerate the filters/pins
- check if a VC-1 mediatype is present, and if so check if there is a combination of source filter and decoder that needs FTC, and if so enable FTC
- Remove the manual FTC option

pirlouy
10th March 2011, 18:47
I had reported a bug with LAV and MPC seekbar with old MPEG, but I've just noticed it seems to be a MPC-HC bug, since madVR seekbar works well ! :eek:

leeperry
11th March 2011, 01:02
I've tried 0.18 in PotP....now it's very hard to get it to freeze for a few secs, it's really really rare. OTOH, if I uncheck "keyframe seeking" it very often never starts and I have to kill PotP. Also, seeking often makes very short audio glitches(that never occurs w/ HMS), and when reading MKV(h264+1.5mbit DTS) from a 6X DVD-R, sometimes when seeking I get the audio but the video never catches up. I'll wait for you to add log options.

nevcairiel
11th March 2011, 08:08
At least there is progress, right? :D

nevcairiel
11th March 2011, 18:57
I've been trying to figure out why ffdshow stops displaying subs after a while when used with LAV Splitter, but i have hit a wall. I was using a MKV with embedded VOB subs, and it did seem like every time there was a period of no subs being displayed (no talking), afterwards ffdshow would stop showing them, while the MPC-HC renderer happily continues. With the Gabest MKV Splitter, it works just fine.

What really puzzles me, however, is this: I used a Tee and a Dump filter and wrote the subtitle output of both the Gabest Splitter and of LAV Splitter into a file, including timestamps, flags and everything, and its perfectly identical. Unless ffdshow somehow has special handling when dealing with the Gabest MKV splitter, i don't know what the hell is going on.

I'll probably enhance the Dump filter somewhat to also write down commands like Flush and NewSegment, but i doubt that those are going over the stream mid-playback.

If anyone has any insight in ffdshow sub rendering, now is the time to speak up!

bjd
11th March 2011, 20:21
Yes I have noticed that on some files but the vobsubs tend to look awful so am going to convert to .srt and remux. :)

nevcairiel
11th March 2011, 22:21
I applied some change which fixed the issue for me. A quick outline what i think was/is the problem:

In the mass of audio/video packets in the stream, subtitles only happen very "rarely", and thus i cannot handle them the same as audio/video. Its safe to assume that audio and video packets will always be constantly present, and if i don't see audio for a while, i better look further ahead until i find some, or playback might not be fluid. The problem with subtitles is, that i don't know when the next subtitle will be shown, so i don't know if i have to look ahead to find one. It appears that sometimes (or actually, most of the time), subtitles are not muxed into the file perfectly, so they are "too late". Previously, i had a buffer of around 100 packets which will be read from the file, and cached in RAM until the decoder has time to look at them. Increasing the size of this buffer to 1000 packets also greatly increases the look-ahead in the file, and thus the chance of finding the subtitle packet.

This change also has some positive side-effects on playback over a slow or unstable network connection, or bad optical media, as alot more data is being cached, it can more easily deal with short connection losses or reading errors.

The only downside is that it'll of course use more RAM, as you might've guessed somewhere in the range of 10x the amount as before. However, this is about the same amount of cache now that the MPC-HC internal splitters use (and previously i wondered why they had such a big cache), so its not that much. Before the change, MPC-HC was at around 90MB with LAV Splitter for me, afterwards, on a 1080p VC-1 MKV (directly remuxed from BluRay, high bitrate), its at around 150, the same area where the MPC-HC internal splitter is at.

Anyway, my guess is that no-one would've even noticed, if i hadn't told you. So nothing to see here, move along!

jmone
11th March 2011, 22:45
I've been trying to figure out why ffdshow stops displaying subs after a while when used with LAV Splitter...

Funny - I had the opposite issue with FFDSHOW stopping displaying the subs with MKV rips using Haali Splitter (you had to delect then reslect the subs over and over)! I did post in the FFDSHOW Thread asking if anyone else had seen this but did not get a response. I've had no probs with LAV!

bjd
11th March 2011, 23:54
This change also has some positive side-effects on playback over a slow or unstable network connection, or bad optical media, as alot more data is being cached, it can more easily deal with short connection losses or reading errors.

@Nevcairel I would imagine once you get the seamless branching in bluray working in LAV, you would probably had to have done something along these lines anyway, but I could be wrong.

The latest filters seems to work better than ever btw, and the audio filter now works with the mpc-hc .ifo stream filter :)

keep up the good work

nevcairiel
12th March 2011, 00:10
Funny - I had the opposite issue with FFDSHOW stopping displaying the subs with MKV rips using Haali Splitter (you had to delect then reslect the subs over and over)! I did post in the FFDSHOW Thread asking if anyone else had seen this but did not get a response. I've had no probs with LAV!

I still wonder why it only happend with ffdshow. It must be a bug on their end, but sending the subs earlier seems to work around it, for some arcane reason.

Subtitles are such a messed up situation in general <.<

SamuriHL
12th March 2011, 00:14
I still wonder why it only happend with ffdshow. It must be a bug on their end, but sending the subs earlier seems to work around it, for some arcane reason.

Subtitles are such a messed up situation in general <.<

No kidding. It's something I hope that can get sorted out. Subs are a major pain.

bjd
12th March 2011, 00:38
Subtitles are such a messed up situation in general

They are, but your splitter handles them as well as anything.

jmone
12th March 2011, 01:00
It seems to be certain combos of what subs, how they are muxed, which splitter and FFDSHOW - it is a real PITA. I (like many others) just want forced subs to appear in the lang of choice automagically just like the commercial players do with discs.

jmone
12th March 2011, 01:15
nevcairiel, got a test file for you to have a look at if you can - http://www.megaupload.com/?d=D0HBS7O3 (it is a 10sec 25mbps 1080/50p H.264/MEPG-4 AVC High@L4.2 camcorder file that has been re-encoded with PowerDirector9). The original files play fine, but when editied / re-encoded with PD9 I "think" Cyberlink write the video header out oddly as I get no video when using the LAV or Haali Splitter but it works fine with MPC (tsMuxeR also does not recognise the Video Stream but eac3to is fine). My current "fix" to make these files LAV friendly is to demux with eac3to and remux with tsMuxeR to "fix" the container (if that is what is wrong).
Thanks
Nathan

jmone
12th March 2011, 01:28
LAVAudio decoder Qs: Great filter and pretty well does all I need (as I just want to decode to LPCM - I DSP in other filters) with the excpetion of DTS-MA. Are there any plans to support decoding the full HD stream (instead of the Core), or can we have an option to hit the Arcsoft HD audio decoder for just this (eg if we have it registered as a filter http://forum.doom9.org/showthread.php?t=154070&page=5 or even if it is possible like madshi does it in via the api in eac3to ) from your filter as I'm having issues trying to selectivly load the audio filters for just DTS-MA.

nevcairiel
12th March 2011, 08:29
nevcairiel, got a test file for you to have a look at if you can - http://www.megaupload.com/?d=D0HBS7O3 (it is a 10sec 25mbps 1080/50p H.264/MEPG-4 AVC High@L4.2 camcorder file that has been re-encoded with PowerDirector9). The original files play fine, but when editied / re-encoded with PD9 I "think" Cyberlink write the video header out oddly as I get no video when using the LAV or Haali Splitter but it works fine with MPC (tsMuxeR also does not recognise the Video Stream but eac3to is fine). My current "fix" to make these files LAV friendly is to demux with eac3to and remux with tsMuxeR to "fix" the container (if that is what is wrong).
Thanks
Nathan
I briefly looked at the sample, and my first guess is that it failed to properly mux the H264 in Annex B format, that is with the SPS/PPS headers interleaved in the video stream, and as a result the decoders do not find them. I currently do not have any code that can "fix" such cases, maybe reporting the file to ffmpeg roundup has some more success, as it may still be something else, or they can somehow add a better handling for this in the h264 decoder/parser.

LAVAudio decoder Qs: Great filter and pretty well does all I need (as I just want to decode to LPCM - I DSP in other filters) with the excpetion of DTS-MA. Are there any plans to support decoding the full HD stream (instead of the Core), or can we have an option to hit the Arcsoft HD audio decoder for just this (eg if we have it registered as a filter http://forum.doom9.org/showthread.php?t=154070&page=5 or even if it is possible like madshi does it in via the api in eac3to ) from your filter as I'm having issues trying to selectivly load the audio filters for just DTS-MA.
Decoding DTS-HD MA will be supported when/if ffmpeg supports it, which i don't think anyone is working on, because the spec isn't what i would call freely available.

Sadly, the decoder does not get told which profile the DTS audio is, until it starts decoding, so the only solution right now would be to decode all DTS with the ArcSoft decoder. The splitter knows however, so maybe i can add an option in there to disable the "default" DTS Media Type when a HD extension is detected, and only send the DTS2 Media Type, which the ArcSoft decoder uses, but LAV Audio doesn't.

I'll ponder on that solution some.

Plutotype
12th March 2011, 09:39
Regarding last posts about the splitter:

1. How can I assign keyboard shortcuts to switch between audiostreams handled by the LAVsplitter in MPC-HC?

2. Would it be possible to make splitter displaying DTS-HD streams in MPC-HC filters page more exact?

Currently its like this: dca, 48000 Hz, 5.1, fp32, 1536 kb/s
Requested: dtshd, 48000 Hz, 5.1, fp32, 1536 kb/s
Requested: dts, 48000 Hz, 5.1, fp32, 1536 kb/s

True HD streams show truehd, LPCM shows pcm-bluray, ac3 is ac3.

I know that the blu-ray has to contain further description ( some encodes are fine, include also language ), but is there any way to somehow differ DTS audio streams from DTS-HD in the generic filter description as mentioned above?

3. Is it by design, that by every truehd stream there is additional ac3 ( probably core ) as separate stream to choose in the splitter ( filter page )? This is a good feature, i want to be sure, that its just like i assume.

Thanks

nevcairiel
12th March 2011, 09:51
Regarding last posts about the splitter:

1. How can I assign keyboard shortcuts to switch between audiostreams handled by the LAVsplitter in MPC-HC?

I dunno, that would be something to ask the MPC-HC devs.


2. Would it be possible to make splitter displaying DTS-HD streams in MPC-HC filters page more exact?

The next version will do that, i actually added that just yesterday, funny that you would ask now.
Btw, dca is short for "DTS Coherent Acoustics", the proper name of the format, in the consumer world DTS is mostly just used as a shorthand. :)


3. Is it by design, that by every truehd stream there is additional ac3 ( probably core ) as separate stream to choose in the splitter ( filter page )? This is a good feature, i want to be sure, that its just like i assume.

Yes thats by design, its the AC3 stream muxed into the TrueHD stream for backwards compatibility on BluRays. Should only show up on BluRays, not in MKVs or anything else.

jmone
12th March 2011, 09:54
I briefly looked at the sample, and my first guess is that it failed to properly mux the H264 in Annex B format, that is with the SPS/PPS headers interleaved in the video stream, and as a result the decoders do not find them. I currently do not have any code that can "fix" such cases, maybe reporting the file to ffmpeg roundup has some more success, as it may still be something else, or they can somehow add a better handling for this in the h264 decoder/parser.
Thanks - I don't see it as the splitters job to fix poorly muxed stuff so I'll keep reporting it back to Cyberlink to fix their PD9 muxer.

Decoding DTS-HD MA will be supported when/if ffmpeg supports it, which i don't think anyone is working on, because the spec isn't what i would call freely available.
That is my understanding as well.

Sadly, the decoder does not get told which profile the DTS audio is, until it starts decoding, so the only solution right now would be to decode all DTS with the ArcSoft decoder. The splitter knows however, so maybe i can add an option in there to disable the "default" DTS Media Type when a HD extension is detected, and only send the DTS2 Media Type, which the ArcSoft decoder uses, but LAV Audio doesn't.

I'll ponder on that solution some.
This is a big one as many user here all chasing the "best" possible video and audio output. The only solution I see at present (till there is a DTS-HD freeware decoder) is for the muxer or audio decoder to call the Arcsoft HD Audio decoder. Hope you can think of something "clever" with this as Blu-ray content seems to favour this flavour of Audio Encoding....

Thanks
Nathan

bjd
12th March 2011, 10:21
@jmone what is exactly the issue you have with the Arcsoft decoder ?

It is a reference DTS decoder and decodes any type of DTS you throw at it (DTS, HR, MA and 96/24).

Just to clarify the situaion with TrueHD, The bluray spec requires .m2ts files have to carry an ac3 track with the TrueHD. HD-DVD .evo's don't have this requirement. Mkvs muxed with mkvtoolnix cannot mux the combined truehd/ac3 stream but the Solveig MKV muxer can.

nevcairiel
12th March 2011, 10:25
Just to clarify the situaion with TrueHD, The bluray spec requires .m2ts files have to carry an ac3 track with the TrueHD. HD-DVD .evo's don't have this requirement. Mkvs muxed with mkvtoolnix cannot mux the combined truehd/ac3 stream but the Solveig MKV muxer can.

I tried to find some easy way to tag these streams somehow, so you know its the sub-stream of the TrueHD track, but no luck yet.

nevcairiel
12th March 2011, 10:34
This is a big one as many user here all chasing the "best" possible video and audio output. The only solution I see at present (till there is a DTS-HD freeware decoder) is for the muxer or audio decoder to call the Arcsoft HD Audio decoder. Hope you can think of something "clever" with this as Blu-ray content seems to favour this flavour of Audio Encoding....


Decoding all DTS with the ArcSoft decoder is pretty close to "best" that you can get.
I'll have options in LAV Audio sooner or later to disable decoding of supported formats, so it can skip to another decoder, but at least in MPC-HC removing the DTS type from LAV Audio will already make it ignore it and use another one.

bjd
12th March 2011, 10:56
I tried to find some easy way to tag these streams somehow, so you know its the sub-stream of the TrueHD track, but no luck yet.

I don't think this is an issue that you should be really looking at as it is the splitter's job to send the audio decoder the correct media and type. Your splitter correct splits truehd and I can decode it with either LAV audio or the Arcsoft Decoder (if I wanted to - I don't: LAV all the way).

From what I can tell and I may be wrong, not only does the Mpc-HC Mpeg splitter identify Bluray type TrueHD/AC3 as AC3 MediaType, but it does not actually split the interleaved files and in effect sends two audio streams to the audio decoder, and the only filter that can work with this is FFDshow Audio presumably because it has been patched to split the combined stream, when really the splitter should be doing this.

Decoding all DTS with the ArcSoft decoder is pretty close to "best" that you can get.

Absolutely, get the right version and you should have untouched full 24 bit audio

nevcairiel
12th March 2011, 11:45
From what I can tell and I may be wrong, not only does the Mpc-HC Mpeg splitter identify Bluray type TrueHD/AC3 as AC3 MediaType, but it does not actually split the interleaved files and in effect sends two audio streams to the audio decoder, and the only filter that can work with this is FFDshow Audio presumably because it has been patched to split the combined stream, when really the splitter should be doing this.

Thats 100% correct, and thats also the reason why TrueHD does not work when usign the MPC-HC Mpeg Splitter with LAV Audio.

jmone
12th March 2011, 12:42
Decoding all DTS with the ArcSoft decoder is pretty close to "best" that you can get.
I'll have options in LAV Audio sooner or later to disable decoding of supported formats, so it can skip to another decoder, but at least in MPC-HC removing the DTS type from LAV Audio will already make it ignore it and use another one.

Agreed but in JR Media Center we can only select filters by file type. So if I select LAV it will grab all everything including DTS-MA, I need to be able to push this to the Arcsoft decoder somehow.

nevcairiel
12th March 2011, 12:44
That wouldn't be a problem if you can just turn off DTS in LAV (like you will be, eventually), then the second decoder would be activated, being ArcSoft HD if configured properly.

bjd
12th March 2011, 13:22
Agreed but in JR Media Center we can only select filters by file type. So if I select LAV it will grab all everything including DTS-MA, I need to be able to push this to the Arcsoft decoder somehow.

I took a quick look at this, you can select multiple audio filters, but the player seems to ignore the filter merit when building the graph and ignores the arcsoft decoder even if its merit is higher then LAV which kind of makes it difficult control

noee
12th March 2011, 13:27
What if you select no audio filters under the "Other Filters"? At that point, it should fall back on merit.

Ger
12th March 2011, 17:35
@nev
I see you changed some splitter registry stuff yesterday. Maybe you'll consider one more, namely adding the .3gp file extension. I guess the MP4 section in dllmain.cpp would be the appropriate place?

To be able to use LAVS for mp4/mov I keep the internal MPC-HC splitter disabled now, since the external filter prefer option is broken for splitters. Since LAVS doesn't pick up .3gp files an old Arcsoft MP4 splitter is loaded on my system (don't even remember where it came from) and it breaks AR and audio. I guess I could work around that by registering the working Gabest splitter externally with a merit somewhere between LAVS and Arcsoft MP4, but because of the test below the simplest solution may just be adding the extension to LAVS, unless there is a reason to keep it out, other than being untested.

I tried playing a 3GP clip with MPEG-4 video and AMR mono audio (recorded on a cheap Nokia phone) using GraphStudio; your splitter and audio decoder both seemed to work fine, reporting "amrnb" for audio codec name, I guess nb is "Narrow Band" according to MediaInfo. Video appeared to have proper AR. Audio to center channel sounded OK.

nevcairiel
12th March 2011, 18:34
The extension alone doesn't really do anything, its just there if i ever want to do something with it .. Its all in the byte markers. Guess i'll look for some 3gp files to get markers from.

Edit: according to wikipedia, it should have a ....ftyp marker, which i already have setup. You sure it doesn't work? :)
But then again, MP4 has no "real" marker, it just starts with a atom, and if thats one that i do not listen for .. oh well.

Do you happen to have a small file somewhere?

Edit2:

I actually downloaded a couple of 3gp files from random places over the web, and they all open fine in MPC-HC using LAV Splitter.
All start with the ftyp marker. ftyp3gp to be precise.

Ger
12th March 2011, 18:57
OK. I thought the extensions listed there was what counted.

Only works in GraphStudio for me. Even if I block the Arsoft splitter in MPC-HC it's still used when the internal splitter is disabled, but maybe the blocking is broken for splitters as well.

Is this enough? "ftyp3gp5" from the header, viewing the file in a text viewer.

I'll see if I can upload something soon.

nevcairiel
12th March 2011, 18:59
Its a typical ftyp header (I assume 4 unreadable bytes before it), those should work just fine already.
Did you re-register the splitter recently? I upped its merit, and it should go above all other splitters now.

And yeah, blockign is broken for splitters, too. The whole external filter list has no purpose for source filters.
I wanted to do something about that ..

No need to upload a sample, then.

nevcairiel
12th March 2011, 19:04
Oh, one thing that i just rememberd, the extensions listed there do have one purpose. They are used to delete static extension assignments, so the byte markers and the merit system are being used.

You can delete that manually if you go to HKCL\Media Type\Extensions and get rid of the .3gp key. (for 32-bit on 64-bit windows, add a Wow6432Node after HKCL)

Ger
12th March 2011, 19:16
Yup. Deleting the .3gp key did the trick. Plays in MPC-HC with LAVS/LAVA now.

I guess my initial request is "accidentally" still valid then. Adding the 3gp extension. :)

nevcairiel
12th March 2011, 19:17
I guess my initial request is "accidentally" still valid then. Adding the 3gp extension. :)
Its been done.

bjd
12th March 2011, 19:26
Agreed but in JR Media Center we can only select filters by file type. So if I select LAV it will grab all everything including DTS-MA, I need to be able to push this to the Arcsoft decoder somehow.

You could try disabling dts in LAV audio by hex editing LAVAudio.ax filter and replacing "33806DE046DBCF11B4D100805F6CBBEA","0120000000001000800000AA00389B71" and "4323BCAFCB3D47409655E1E62A61B1C5" with "00000000000000000000000000000000"

That should allow the Arcsoft to do DTS assuming you don't have any other DTS decoders on your system.

Ger
12th March 2011, 19:31
Its been done.
You work too fast for me. I should have known to check the git log again before posting that. ;)

nevcairiel
12th March 2011, 21:31
And yeah, blockign is broken for splitters, too. The whole external filter list has no purpose for source filters.
I wanted to do something about that ..

MPC-HC revision 2973 will now respect manual merits, preferrred or blocked status configured in the External Filter list for source filters. Adding an unregistered source filter through that panel remains dysfunctional, however.

Ger
12th March 2011, 21:34
Cool. :thanks:

madshi
12th March 2011, 23:12
MPC-HC revision 2973 will now respect manual merits, preferrred or blocked status configured in the External Filter list for source filters.
That's an important improvement, IMHO. Thank you.

jmone
14th March 2011, 06:22
You could try disabling dts in LAV audio by hex editing LAVAudio.ax filter and replacing "33806DE046DBCF11B4D100805F6CBBEA","0120000000001000800000AA00389B71" and "4323BCAFCB3D47409655E1E62A61B1C5" with "00000000000000000000000000000000"

That should allow the Arcsoft to do DTS assuming you don't have any other DTS decoders on your system.

Thanks bjd - it is ugly but it works. In J.River MC I now have LAV as the prefered Audio Decoder but Hex Edited above, and the Arcsoft HD Audio decoder which is registered takes over.

nevcairiel - any thoughts on your pondering on this one?

nevcairiel
14th March 2011, 07:57
I'll offer configuration to control which formats it'll accept, but i don't know when i'll implement that.

bjd
14th March 2011, 10:08
Thanks bjd - it is ugly but it works

Yes it is ugly and dirty and aplogies to Hendrik for hacking his filter.

It is just a shame that the JJ Media software with so many features falls down on filter customisation.

jmone
14th March 2011, 11:17
Yeah - there has been a push for filter selection by stream type VS filetype in JR MC but .... at the end of they day, I've now got full bitrate/bitdepth decoding of all Audio with LAVAudioDecoder + TMT for DTS-MA with direct show filters. :). Hendrik's config option will make it "easer" but the ultimate solution is when/if full DTS-MA decoding support is included in ffmpeg (but I'm not holding my breath).

tetsuo55
14th March 2011, 11:40
@All

I have been trying to find bug-tickets over at FFmpeg, things are kind of unstable over there, but i have not been able to find any tickets regarding the non-working features such as DTS-HD, DTS-26/96 and Ordered chapters.
I can imagine DTS-HD tickets being closed with "completely unsupported" but the mkv problems are missing features of otherwise correctly implemented formats.

The best chance of getting things like these added is to provide a very (and i cannot stress the very enough) accurate and complete ticket that shows in detail how and why ffmpeg (using ffplay) currently fails to correctly play the file and why it should be able to (prove its not a hacked of malformed file), including small samples that clearly show the problem. From what i saw tickets that where actually submitted where fixed quite quickly for related issues in the past.

pankov
14th March 2011, 19:00
I was one of the users that reported that ordered chapters (different "versions" of the movie - Extended/Theater) are not working with LAVSplitter but sadly I have absolutely no knowledge in ffmpeg/ffplay or mkv authoring so I apologize that I won't be able to provide such short samples or a way to create them.
:(

Ger
14th March 2011, 19:37
I haven't tried it, but maybe this (http://forum.doom9.org/showthread.php?t=160027) can help?

Virtual_ManPL
14th March 2011, 19:55
Some update, because stable (not beta anymore :)) Microsoft Visual C++ 2010 SP1 is available.

Redistributable Packages:
Microsoft Visual C++ 2010 SP1 Redistributable Package (x86) (https://www.microsoft.com/downloads/en/details.aspx?FamilyID=c32f406a-f8fc-4164-b6eb-5328b8578f03)
Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) (https://www.microsoft.com/downloads/en/details.aspx?FamilyID=c68ccbb6-75ef-4c9d-a326-879eab4fcdf8)



Can someone reproduce this issue ? Or it's just problem on my end. I get more and more frame dropping in some files with LAVFSplitter
BUG #31 - Frame dropping in some certain files (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/31)

robpdotcom
14th March 2011, 20:14
I'll post some ordered chapter and segment linking samples later today.

Ger
14th March 2011, 20:29
Can someone reproduce this issue ? Or it's just problem on my end. I get more and more frame dropping in some files with LAVFSplitter
BUG #31 - Frame dropping in some certain files (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/31)

I actually tried that sample the other day, but I still haven't gotten around to signing up at github :o, so I didn't comment yet.

It seems to me that this is one of these VFR (Variable Frame Rate) (http://forums.animesuki.com/showthread.php?t=34738) files. If you look at the EVR Custom stats (CTRL-J) in MPC-HC it seems to try to lock at a whopping 359.635 Hz when LAV Splitter is used with EVR Custom. This seems to choke the internal decoder (i.e. drops almost all frames) when EVR Custom's Vsync is enabled (can be disabled with the v key).

With the internal Matroska splitter the stats show more sensible values, and you can see the FrameR value lock at 29.970 then suddenly change to 23.976 or to 25.000 during playback.

So yes, I can reproduce if the right combination of splitter/decoder/renderer is used.

nevcairiel
14th March 2011, 20:44
I'm grabing a VFR sample, maybe there is something trivial to fix this..

nevcairiel
14th March 2011, 21:16
I'm grabing a VFR sample, maybe there is something trivial to fix this..

Looks like the frame rate switch confuses ffmpeg, not sure if there is something easy to do. I'll look into it. For the time being, use ffdshow, it seems to deal with it properly.

robpdotcom
14th March 2011, 22:10
@tetsuo55:

Here are samples of three different methods of ordered chapters and segment linking. They are short audio clips, with no video - but they work the same.

http://www.megaupload.com/?d=2UA3LAHF

Sebastiii
15th March 2011, 09:56
Hi,

I have adapt a old patch for ordered chapter : Ordered Chapter Patch (http://www.mediafire.com/?9682jos8z4lrv4n)
Not working 100% but maybe a start :)
Seb.

nevcairiel
15th March 2011, 11:41
The patch is really ugly, mostly because it trys to implement segment linking and ordered chapters in one go, instead of implementing one of the features first, and the other later.

Sebastiii
15th March 2011, 14:58
Thanks, Nevcairiel,
Yep, it would be nice to make it good and separate in 2. I can try but not sure to achieve it.
Seb.

hoborg
16th March 2011, 10:18
@nevcairiel:
Thanks for your work on LAVF. I did some fast tests with .18 and lot of issues a had are gone. What i found:

- Some MPEG-1 MPG samples won't open, fall back to "MPEG-I Stream Splitter".
EDIT: Fixed after added .MPG to registry
- if i try to play WAV with DTS inside, it wont play correctly
EDIT: it happend with all *.DTS files.
- some FLV play at wrong speed (old issue)

Samples can be found here (http://hobring.esero.net/saf/lavf/).

Some feture requests:
- FFDshow alow map keyboard shotrcuts to change audio/subtitles streams. I am using this im my HTPC - i maped my remote controler to this shortcuts, so i can change audio/subtitles tracks on thy fly by remote in any DirectShow based players. Something like this will be usefull in LAVF too.
- what about modify registry durning "LAVSplitter.ax" registration? For example i must added .MKV and other extensions to registry (HKEY_CLASSES_ROOT\Media Type\Extensions\) with LAVF source CLSID "{B98D13E7-55DB-4385-A33D-09FD1BA26338}". For example DC-Bass Source Filter (http://www.free-codecs.com/download/DC-Bass_Source_Filter.htm) doing it automatically durning registration. There is ini file with definition what should be registered and what not. Very usefull i think.

nevcairiel
16th March 2011, 10:23
- FFDshow alow map keyboard shotrcuts to change audio/subtitles streams. I am using this im my HTPC - i maped my remote controler to this shortcuts, so i can change audio/subtitles tracks on thy fly by remote in any DirectShow based players. Something like this will be usefull in LAVF too.

Thats something a player should offer, not a DirectShow filter.

- what about modify registry durning "LAVSplitter.ax" registration? For example i must added .MKV and other extensions to registry (HKEY_CLASSES_ROOT\Media Type\Extensions\) with LAVF source CLSID "{B98D13E7-55DB-4385-A33D-09FD1BA26338}".
Registering extensions is not required. What LAV Splitter does is actually delete extension assignments when its registered, so the proper byte-marker and merit system gets used.

The only downside is that it won't work on broken files, because the byte-marker is not correctly present there (see your .mpg problem)

If i write a proper installer some day, it'll probably allow doing the extension hookups, but the filter itself won't.

hoborg
16th March 2011, 10:35
nevcairiel:

Thanks for info. I just noticed it is still posible to change audio/subtitles streams in FFDshow, so no problem here, that is good :)

I don't know why, but on my machine i must added some extension to registry to be able open my samples in Graphstudio. At last for MKV, FLAC, MOV. But maybe simple restart will help to make merrit change working.

Again, good work!

nevcairiel
16th March 2011, 10:36
I don't know why, but on my machine i must added some extension to registry to be able open my samples in Graphstudio. At last for MKV, FLAC, MOV. But maybe simple restart will help to make merrit change working.

This should be better in the next version, i changed some stuff around that fixed the problem in GraphStudio for me.

Sebastiii
16th March 2011, 10:41
Thanks Nevcairiel :)
Seb.

hoborg
16th March 2011, 11:31
@nevcairiel:
One more question - there was a discussion about audio passthrough.
If i am not wrong, you wrote you want to add it in to splitter, so there will be splitter - audio renderer connection.
But what about DVD playback? Do you have plan to use LAVF even as an DVD navigator filter - is that possible?
Becouse if there will be MS DVD Navigator -> LAVF audio decoder -> audio renderer connection, it will be not possible to passthrough DTS/AC3 audio, right?

nevcairiel
16th March 2011, 11:34
I have no plans to write a DVD Navigation component. And yes, thats right, you won't be able to do audio passthrough if you're not using LAV Splitter. I just don't see a reason to include another filter in the graph, and get a headache from the DirectShow interaction, if i could just do the muxing into SPDIF/HDMI format in the splitter.

When i start developing it, i might still change my mind, but thats the plan for now.

Sebastiii
16th March 2011, 20:26
Hi,

I have try to separate ordered from linked Matroska file patch.
So this is a sample within 3 editions.

Sample with 3 edition in it and xml file for mkvmerge (http://www.mediafire.com/?7qqdi1jscp8wt37)

Edition 1 : 0:00 to 0:25
Edition 2 : 0:00 to 0:35
Edition 3 : 0:00 to 0:55

This is the binary for testing and the patch against last git LAV.
LIBAV Patch Ordered (http://www.mediafire.com/?3bu8axa19jkxf1o)
LAVSplitter_Ordered_Only (http://www.mediafire.com/?2pcqu4q21hb3apy)

We can jump between edition with Chapter menu.
But the file the result is not like we want because we have all edition one after the other and not only the one we selected.

So here the total lenght time is 01:55, and i don't know if it's on splitter side to detect Edition and only display the current edition or if it's on ffmpeg side :)

Maybe also an help is to look on ffmpegsource that use haali part of code (and maybe edition code).

EDIT : Another patch some cleanup : Ordered-Chapter-for-libav-more-cleanup (http://www.mediafire.com/?e20dmm6lzez97zp)

Cheers,
Seb.

jmone
17th March 2011, 04:54
Hi Nevcairiel - I think we touched on this once before but, here is a link to an mpg file (MPEG2/PCM - http://www.megaupload.com/?d=9VZWU96N ) that according to LAV Splitter has a "PCM_S16BE, 48000Hz, 2 channels, s16, 1536kb/s" audio track. Trouble is there is neither a Audio Decoder or Renderer is being loaded (so you either get no sound, or bursts of static).
Thanks
Nathan

jmone
17th March 2011, 05:13
Another one - There is a thread on the JRMC board I started with an issue on random crashes that seems to be related to the LAV Splitter - sample file and more in this thread: http://yabb.jriver.com/interact/index.php?topic=62956.msg422321#msg422321

nevcairiel
17th March 2011, 08:30
Hi Nevcairiel - I think we touched on this once before but, here is a link to an mpg file (MPEG2/PCM - http://www.megaupload.com/?d=9VZWU96N ) that according to LAV Splitter has a "PCM_S16BE, 48000Hz, 2 channels, s16, 1536kb/s" audio track. Trouble is there is neither a Audio Decoder or Renderer is being loaded (so you either get no sound, or bursts of static).
Thanks
Nathan

LAV Audio Decoder should load for all audio codecs if its used with LAV Splitter. I would guess your DTS hacking disabled that feature, because without you wouldn't be able to block DTS. ;)

In any case, i can wire the BE PCM to the appropriate QT PCM Types (only Mediatypes i know for BE PCM, if there are others, let me know. :p)

jmone
17th March 2011, 09:08
Mmmm you are of course correct, the DTS hack is what has stuffed this up! Replaced my hacked LAVAudio.ax with the "pure" one and it loads for these files just fine. I have a feeling I should wait to see what develops over time :)

jmone
17th March 2011, 23:03
nevcairiel - you may be interested in some quotes from the JRMC forum (if you have not come across it already) in your consideration of how to handle DTS-HD and it's relative importance....

Quote from: jmone on Today at 09:24:33 am
FYI - The growth of the use of DTS-HD is been staggering with over 50% of all Blu-ray discs every released now having DTS-HD http://www.blu-raystats.com/Stats/Stats.php. I really don't see many new releases with any other Audio Codec for the primary track (I wonder what deal they have done).

author=mojave link=topic=62784.msg422490#msg422490 date=1300398257]
It was mentioned in a thread at HomeTheaterShack back in November that DTS had signed a deal to have DTS-HD on all (or almost all) new releases going forward. In releases in 2011, TrueHD has only been on 17 titles (9.94%). This dropped to 7.35% for Feb and 5.26% (only 2 titles) for March.

nevcairiel
17th March 2011, 23:06
There is nothing i can do. You install the ArcSoft decoder, you get DTS-HD decoding. Thats all thats to it.

TBH, 90% of people don't have a sound system anyway where they would hear the difference between DTS Core and DTS-HD.

tetsuo55
17th March 2011, 23:14
There is nothing i can do. You install the ArcSoft decoder, you get DTS-HD decoding. Thats all thats to it.

TBH, 90% of people don't have a sound system anyway where they would hear the difference between DTS Core and DTS-HD.
Here is a "review" of the various audio formats included on bluray discs, in what you could say are the best possible ABX circumstances with what i can only guess are the most high end speakers possible.
Even in this situation the difference in sound quality subjectively was rated at 4% between the worst and best sounding formats http://www.hemagazine.com/node/Dolby_TrueHD_DTS-MA_versus_Uncompressed_PCM

It sounds probable that only those with a professionally calibrated listening area and very high quality speakers will be able to detect core vs dts-hd in a double-blind-ABX test. And even then you need to know what to look for in the sound.

---

Also keep in mind, that the lossless audio tracks can losslessly be converted, although this will not help for playback from bluray disc.
I've heard that some flac encoders can create smaller files than the dts-hd track itself.

jmone
17th March 2011, 23:47
Too true tetsuo55 and thanks for the link - good read.

nevcairiel - Sorry to be vague, I was trying to articulate two things over the last few posts
1) that DTS-MA was growing ever more popular on Blu (looks like it is becoming the defacto std for the main track) and
2) that the best solution may be to wait till you have the On/Off support by Codec instead of hacking the filter manually (so as to use the TMT Filter for DTS-MA)

Thanks
Nathan

SamuriHL
18th March 2011, 00:13
Hey, Nev....the ArcSoft video decoder. Is it possible to use that? I ask cause when I put that in the external filters list in MPC-HC and set it to prefer. I never see it used on either h.264 or vc-1 content. I can get the PDVD10 video decoder to work but I don't think it's ever actually doing DXVA on my 450. CPU utilization is REALLY high if it is. On that machine I NEED to offload everything to the GPU as the base X2 4200+ just isn't up to handling software decoding. I was wanting to compare how the ArcSoft decoder stood up but it doesn't seem to work for me. When I bring up the properties from the external filters screen in MPC-HC, I get the ArcSoft decoder properties page, but, then it never gets used. Any thoughts?

robpdotcom
18th March 2011, 00:37
Hey, Nev....the ArcSoft video decoder. Is it possible to use that? .....When I bring up the properties from the external filters screen in MPC-HC, I get the ArcSoft decoder properties page, but, then it never gets used. Any thoughts?

Depending on the splitter, you may need one of the VC-1 tweaks.

Also, have you registered the ASVid.ax? I believe that is necessary.

jmone
18th March 2011, 00:37
Also keep in mind, that the lossless audio tracks can losslessly be converted, although this will not help for playback from bluray disc.
I've heard that some flac encoders can create smaller files than the dts-hd track itself.

Thats true and what I was doing but I think I'll just go for full ISO (or stucture) backups to HDD as:
1) Disc is cheap
2) You get all the alt endings, EE vs Std editions etc
3) No need to transcode anything any more as all formats of Video, Audio, and Subs are now doable.
4) Easy to backup and then easy to burn if you need to

SamuriHL
18th March 2011, 00:40
Depending on the splitter, you may need one of the VC-1 tweaks.

Also, have you registered the ASVid.ax? I believe that is necessary.

The splitter I'm using should be obvious. :D And it doesn't work for h.264 or VC-1, so, something else is wrong.

Yes, I've registered asvid.ax. Otherwise you can't even add it to the external filters. I'm really not sure what's going on there. I haven't had time to try to build a manual graph to see if it works. I'm leaving for a few days in the morning so I won't have time to troubleshoot it, but, I was just wondering if anyone had any brilliant thoughts. Even a "of course that doesn't work you idiot" would be fine as long as I know it's not just me. :)

bjd
18th March 2011, 01:31
TBH, 90% of people don't have a sound system anyway where they would hear the difference between DTS Core and DTS-HD.

Even with the very best sound system., the differences between 24/48 DTS-HD and full rate DTS-Core (which is what you get on movies) are so minute (and usually inaudible) on a reference decoder. 24/96 DTS-HD material is a different kettle of fish though.

ArcSoft video decoder. Is it possible to use that?

Should work fine with the LAV splitter. Tested before with no issues and no need for a VC-1 tweaker, but prefer FFDshow personally for sub support with MadVR

I would guess your DTS hacking disabled
....Ooops :)

SamuriHL
18th March 2011, 01:38
Should work fine with the LAV splitter. Tested before with no issues and no need for a VC-1 tweaker, but prefer FFDshow personally for sub support with MadVR


I prefer ffdshow with pdvd10 software decoding pumped into madVR, as well. However, that no workie on such a low end machine. Maxes the CPU and starts breaking up badly. So, offloading everything to the GPU is the only way to get it stable on that machine, especially considering I use 24Hz on it. In any case, I can't even get it to load. :(

jmone
18th March 2011, 01:42
Yup - bjd, your hack instructions for the NAVaudio decoder works great for DTS-MA - perfect, ... except it broke the loading of it for some PCM types.

Mercury_22
18th March 2011, 01:45
The splitter I'm using should be obvious. :D And it doesn't work for h.264 or VC-1, so, something else is wrong.

Yes, I've registered asvid.ax. Otherwise you can't even add it to the external filters. I'm really not sure what's going on there. I haven't had time to try to build a manual graph to see if it works. I'm leaving for a few days in the morning so I won't have time to troubleshoot it, but, I was just wondering if anyone had any brilliant thoughts. Even a "of course that doesn't work you idiot" would be fine as long as I know it's not just me. :)

Maybe you're in the same situation I was = do you have the checkactivate.dll (http://forum.doom9.org/showthread.php?p=1392750#post1392750) ?If you care to use it, here is a guide how to get the codec working outside of TMT3

http://www.avsforum.com/avs-vb/showthread.php?p=19420488#post19420488

The next version will have proper VC-1 support in conjunction with both the Cyberlink and the ArcSoft decoders.

SamuriHL
18th March 2011, 01:48
Maybe you're in the same situation I was = do you have the checkactivate.dll ?

I have TMT5 installed properly so I don't need to hack anything. I just registered the decoder. It SHOULD work. I can get the properties page up.

bjd
18th March 2011, 01:49
I can't even get it to load.

Have you TMT installed are you using a standalone filter install?
Are you using Shard's unlocker?

As well as the asdvid.ax, you need the right .dlls such as ASVC1Vid.dll for VC1. The Arcsoft decoder when working should support DXVA with MPEG2, H264 and VC1.

Mercury_22
18th March 2011, 01:50
I have TMT5 installed properly so I don't need to hack anything. I just registered the decoder. It SHOULD work. I can get the properties page up.

I was in the same situation (except it was TMT3)! you still need the checkactivate.dll

jmone
18th March 2011, 01:59
SamuriHL are you using the 7KB "checkactivate.dll" or the real arcsoft one? - https://forum.doom9.org/showthread.php?p=1470148#post1470148

Eg and FYI for me on the Audio Side to get DTS-HD decoding all I need are:
* AsAudioHD.ax (from TMT 3.0.1.185 register this filter)
* dtsdecoderdll.dll (from TMT 3.0.1.185)
* checkactivate.dll (the 7KB version)

I then add the following to Win.Ini as the settings are not retained by the filter and need to be set up front:


[HKEY_LOCAL_MACHINE\SOFTWARE\ArcSoft\MPEG Codec\Decoder Setting\]
AudioOutputMode=5
AudioDynamicRange=1

The above works for me to get 5.1 at full bitrate and depth but "apparently" the settings should be
================ where ===================
Audio Output Mode is:
0,1,2,5: Stereo
6,13: 5.1 Channels
17: 7.1 Channels
16: S/PDIF

EDIT: Other TMT filters (eg Video etc) from 3.0.1.185 should also work after registering them in the same folder as checkactivate.dll. I've seen no conflict between these filters and later versions of TMT installed on the same PC.

SamuriHL
18th March 2011, 02:06
I was in the same situation (except it was TMT3)! you still need the checkactivate.dll

I'll give this a try. Thanks, guys!

nevcairiel
18th March 2011, 14:49
Just a small heads up.

I decided to implement the configuration of which formats to decode in LAV Audio next, and will be working on that this evening. Once its done, i'll release it as 0.19. There have already alot of fixes and enhancements piled up, and i don't want to keep them from you until i merge the BluRay support in (which is developing quite nicely, btw).

So, this weekend, 0.19 with fixes and codec configuration, after that 0.20 with BluRay support, hopefully soon.

bjd
18th March 2011, 17:42
@nevcairiel - top effort, Jmone will be happy.

Plutotype
18th March 2011, 18:25
amazing progress here, good community

Kotik
18th March 2011, 19:28
Great news!

Thanx for the info Nev.

jmone
18th March 2011, 21:48
How good is this! Just like Christmas with LOTS of new presents...

@nevcairiel - top effort, Jmone will be happy.

:)

after that 0.20 with BluRay support, hopefully soon

:) :)

There have already allot of fixes and enhancements piled up

Looking forward to this to see if any of them help the stability issue I'm seeing on the splitter - will test and report back!

jmone
18th March 2011, 23:24
OT - what freeware tools allow you to view detailed video info in x264 streams? FYI I have an 1080/50p x264 clip from my camcoder that plays fine but if I add say a title in the middle (using Cyberlinks PD9) something odd is happening in the new file at the tranistion point from the end of the title (eg the PD9 rendered segment) back to the original segment (eg LAV Spliter stutters on the Video at the point but MS Media Play is fine).

Mercury_22
19th March 2011, 13:08
I'll give this a try. Thanks, guys!

Please let us know if it works with TMT5 too and if you can test the audio dec too :)

SamuriHL
19th March 2011, 13:11
Please let us know if it works with TMT5 too and if you can test the audio dec too :)

Currenly on vacation. Will try it tuesday when I get home and let you know.

nevcairiel
19th March 2011, 14:19
It does work with TMT5, but on the audio side, it never likes outputting more then 48Khz/16Bit. The TMT3 .185 version is perfect for me. (And i own both TMT3 and TMT5)

nevcairiel
19th March 2011, 18:02
LAV DirectShow Filters 0.19

General
- Version Information has been added to the filter .ax files, as well as shown on the property pages.

LAV Splitter
- Redesigned stream name generations
- Codec profiles are now shown (if known - supported are H264, VC1, MPEG2 and DTS)
- Audio bit-depth is no longer shown for lossy codecs, as it doesn't apply there
- Improved logic that parses the stream flags
- Names for the subtitle codecs have been added
- If the language is "Undetermined", it'll no longer be shown
- Size of the packet queue has been increased (solves subtitle issues, as well as improves playback stability)
- Redesigned the way the splitter registers for formats in the registry for better compatibility
- Changed the stream change handling for better compatibility with certain players (Media Portal, and others)
- Improved handling of unknown streams (no codec information present)
- Added a new option that controls if substreams should be exposed in the stream selector (Only AC3 in TrueHD supported)

LAV Audio
- Added a new configuration panel which allows to configure which formats the decoder should handle


Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.19.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.19-x64.zip)

On the configuration in the audio decoder, i added all "major" formats that i could think of (and that i have media types setup for), but adding new ones is pretty easy, so if you think you should be able to turn off another format, just tell me which, and i'll add it to the list.

One thing:
I recommend uninstalling the old version before installing this one, because the way the registry format/media type data is written changed, and if you don't uninstall the old version, you'll have double entries in the registry.
So, simply run the uninstall.bat file, unpack the new version and run the install.bat again (of course all with admin privs)

Have fun.

Sebastiii
19th March 2011, 18:49
Nice Work :)
Will going to test.
Thank you.

Ger
19th March 2011, 22:38
Many nice changes in 0.19, and no regressions found so far.

Tried disabling an audio format and it worked fine here (other decoder is used).

Also noticed the visual impaired audio track from the UK DVB-T2 Star Wars sample is tagged as such now. :thanks:

jmone
19th March 2011, 23:15
Great update and thanks for the selectable support for Audio Formats - this is working very well :)

I've done a bunch of testing on what makes the splitter crash (still doing it) and have updated the J.River thread.

Thanks
Nathan

Ger
20th March 2011, 00:12
May have found a regression anyway. I can now hear a crackling sound in all(?) my LATM AAC samples.
Example (I've posted this link/sample before so you probably have it already): The_Gift_-_DR_HD_-_2009-12-23.ts (http://www.multiupload.com/O17QVRTW8N)

I also see occasional huge (as in off the screen huge) spikes in the MPC-HC EVR-CP stats graph with those samples, with short picture freezes (using MS DTV-DVD decoder for video and MPC-HC trunk r2989).

I don't follow the ffmpeg/lav development, but using avcodec-52.dll from v0.18 seems to fix the issue, so maybe some LATM stuff got messed up upstream in the last 20 or so days?

Plutotype
20th March 2011, 00:33
Tested with madVR 0.45 and MPC-HC 2988, everything looks good.
Thanks for the stream naming in filter properties (MPC-HC) and format selector in LAVaudio.

nevcairiel
20th March 2011, 00:35
May have found a regression anyway. I can now hear a crackling sound in all(?) my LATM AAC samples.
Example (I've posted this link/sample before so you probably have it already): The_Gift_-_DR_HD_-_2009-12-23.ts (http://www.multiupload.com/O17QVRTW8N)

I also see occasional huge (as in off the screen huge) spikes in the MPC-HC EVR-CP stats graph with those samples, with short picture freezes (using MS DTV-DVD decoder for video and MPC-HC trunk r2989).

I don't follow the ffmpeg/lav development, but using avcodec-52.dll from v0.18 seems to fix the issue, so maybe some LATM stuff got messed up upstream in the last 20 or so days?

I can reproduce the problem, lets see if i can pin it on a specific change in ffmpeg.

jmone
20th March 2011, 00:52
It does work with TMT5, but on the audio side, it never likes outputting more then 48Khz/16Bit. The TMT3 .185 version is perfect for me. (And i own both TMT3 and TMT5)

+1 I can confirm if you want full bit rate and depth then TMT3 .185 is the way to go (I also own both)

Ger
20th March 2011, 01:00
Thanks for looking into the LATM issue.

Also noticed the visual impaired audio track from the UK DVB-T2 Star Wars sample is tagged as such now.

Actually, both hearing impaired DVB subtitles (The Gift sample) and visual impaired audio tracks (Star Wars sample) in MPEG-TS are now tagged correctly running a recent ffprobe.exe. I guess that means this patch (http://forum.doom9.org/showthread.php?p=1428791#post1428791), or at least part of it may no longer be needed, if you're still applying it?

nevcairiel
20th March 2011, 01:06
Actually, both hearing impaired DVB subtitles (The Gift sample) and visual impaired audio tracks (Star Wars sample) in MPEG-TS are now tagged correctly running a recent ffprobe.exe. I guess that means this patch (http://forum.doom9.org/showthread.php?p=1428791#post1428791), or at least part of it may no longer be needed, if you're still applying it?

I actually got that applied upstream. :)

Ger
20th March 2011, 01:11
Nice. :)

nevcairiel
20th March 2011, 01:19
I found the offending commit that broke LATM decoding. I'll revert it and upload a new 0.19 zip with a fixed ffmpeg. I will also try to bring it up with the ffmpeg devs, but from past experience, responding to regressions on old commits never really worked too well..

nevcairiel
20th March 2011, 01:34
Ok, same URLs as before

Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.19.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.19-x64.zip)

Just that one commit reverted. I'll do a full update on ffmpeg tomorrow, and see if its maybe fixed (doubt it, from skimming the commit list since then), and try to get some attention on the mailing list, somehow. For some reason getting some change commited just by saying it works is easy, reporting a bug requires more then saying "it doesn't work". <.<

Please confirm that the issue is indeed fixed for you as well.

Ger
20th March 2011, 02:07
Yes, I can confirm it's fixed for me as well with avcodec-52.dll dated 20.03.2011 01:25.

jmone
20th March 2011, 02:24
mpg.coruption.mpg
ffdshow-libavcodec - corruptions on begining
ffdshow-libmpeg2 - crash while seeking
mpc-hc MPEG-2 Video, Microsoft DTV-DVD Video Decoder (system) - no problem

mpg.mpeg-1-not_working.mpg
ffdshow-libavcodec - gray screen
ffdshow-libmpeg2 - crash while seeking
mpc-hc MPEG-1 Video, MPEG 1 Video Decoder (system) - no problem

Yeah, there is that crash bug in ffdshow libmpeg2 .. blame them, its their fault afterall! :)

I'll try to fix the libavcodec mode.

Here is hoping this is what was causing my MPEG-2 Seek Crashes with LAVSplitter. Changed from libmpeg2 to libavcodec and all so far (fingers crossed) is good!

nevcairiel
20th March 2011, 11:19
That old problem, eh. I still blame ffdshow for the crash, not sure why it doesn't happen with any other splitter, but it also doesn't happen with any other decoder, including the MPC-HC decoder which also uses libmpeg2.

Personally, i like the MS DTV Decoder for MPEG-2 content. :)

jmone
20th March 2011, 11:44
Yeah no idea either..... Anyway, I'm trying to keep the number of Filters down to a minimum and FFDSHOW's Subs and deinterlacing (YADIF Double Frame rate) is pretty good IMHO. So for me the ideal set of filters is looking like:
- LAVSplitter
- LAVAudio for all but DTS + Arcsoft HD Audio for DTS (thanks again for this config option!)
- FFDSHOW for Video (ffmpeg-mt for 264/AVC as handles 50p content without stuttering, libavocdec for the rest) + "MS WMVideo Deocder DMO" for VC-1 as it handles Interlaced VC-1 well (mmm I have not tried the Arcsoft decoder.....)
- madVR for the Video Renderer
- Reclock for the Audio Renderer (at least until J.River add auto frame rate changing to their renderer which should be soonish)

madshi
20th March 2011, 12:53
ffdshow? MS DTV Decoder? Are you guys watching that much native video content? If not, I wonder how you could *not* use the DScaler5 IVTC Mod MPEG2 decoder.

nevcairiel
20th March 2011, 12:55
I don't really watch any interlaced or TC'ed content, but if i do (got some DVDs that are TC'ed), i usually prefer hardware deinterlacing/ivtc, never got any software work as smooth as that (even when that means not using madVR for that few DVDs)

noee
20th March 2011, 13:01
ffdshow? MS DTV Decoder? Are you guys watching that much native video content? If not, I wonder how you could *not* use the DScaler5 IVTC Mod MPEG2 decoder.

I cannot get Dscalar (with updated dlls) to work on Win7 x64 with any player. What OS are you using?

madshi
20th March 2011, 13:20
I don't really watch any interlaced or TC'ed content, but if i do (got some DVDs that are TC'ed), i usually prefer hardware deinterlacing/ivtc, never got any software work as smooth as that (even when that means not using madVR for that few DVDs)
Are that PAL or NTSC DVDs? AFAIK, for NTSC movies hardware IVTC gives you 30p or 60p for movie content, which will result in the typical 3:2 motion judder. The DScaler IVTC mod should give you perfect 24p output instead. For PAL content the situation is different, though.

I cannot get Dscalar (with updated dlls) to work on Win7 x64 with any player. What OS are you using?
Works just fine on my win7 x64 HTPC. Anyway, this is out of topic, I guess. Was just wondering why you guys didn't use the DScaler IVTC mod.

nevcairiel
20th March 2011, 13:30
Are that PAL or NTSC DVDs? AFAIK, for NTSC movies hardware IVTC gives you 30p or 60p for movie content, which will result in the typical 3:2 motion judder. The DScaler IVTC mod should give you perfect 24p output instead. For PAL content the situation is different, though.

NTSC. From what i experienced, if you use DXVA decoding and do IVTC in the same step, it actually reduces it to 24p properly.

In any case, can't use madVR for DVDs anyway. Screw you macrovision :(

madshi
20th March 2011, 13:49
NTSC. From what i experienced, if you use DXVA decoding and do IVTC in the same step, it actually reduces it to 24p properly.
Weird. Looking at the DXVA deinterlacing APIs, I don't see how that works. Anyway...

robpdotcom
20th March 2011, 15:50
Now that madVR is working with the MPC-HC internal sub renderer (thanks Madshi :cool:), I started playing around with it.

I noticed that LAVS does not work with the MPC-HC keyboard shortcut for switching streams ("S" and "Shift+S" are default, I believe).

Is this something that can be added?

madshi
20th March 2011, 16:13
now that madvr is working with the mpc-hc internal sub renderer (thanks madshi :cool:), i started playing around with it.
:) ...

SamuriHL
20th March 2011, 19:55
Sweet. Can't wait to try it when I get home tuesday!

hoborg
20th March 2011, 20:05
Hi.

I am posting this problem here too, becouse i would like to found the source of this issue - i just tested LAVF v.19 audio decoder + splitter.

DTS + EVR custom renderer = stuttering

I noticed there is a stuttering/droped frames in videos with DTS track if custom EVR renderer is in use (like MPC-HC/MediaPortal one). If i use simple EVR/VMR9 - no problem.
It can be fixed by disabling jitter correction (in fffshow).

Here is a video sample (http://forum.doom9.org/showthread.php?p=1484682#post1484682). (more info (http://forum.doom9.org/showthread.php?p=1484243#post1484243)).

I have this problem in nearly all videos with DTS audio.