View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
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
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.