Jump to content


Photo

Haali's MKV/MP4/AVI Parser (Splitter)


  • Please log in to reply
44 replies to this topic

#1 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 10 March 2005 - 05:36 PM

Now Haali's Parser can split:

1)MKV: very much formats are suported (see above!) :)
2)MP4:mpeg1/mpeg2/mp3/ftypavc1/mp4v, mp4a and avc1 streams/VobSub
3)AVI
  • 10/03/2005 Added 'ftypavc1' to the list of mp4 signatures.
  • 09/03/2005 Added vobsubs in mp4 support.
  • 09/03/2005 Added mpeg1/mpeg2/mp3 in mp4 support.
  • 08/03/2005 Fix embedded subtitles switching in avi.
  • 08/03/2005 MP4 container support, only mp4v, mp4a and avc1 streams supported.
  • 03/03/2005 Regsiter shell file type if there was no .mkv yet, seamless subs switching with latest VSfilter and MPC, fix a typo in setting.
  • 19/02/2005 Fix a crash when the cues table was present but empty, tray icon can be turned off, additional support for shared intro/outro, fix a subtle bug in buffering that could cause annoying jitter in avi playback, fix a bug in buffering that could cause jitter and excessive seeking in high bitrate matroska files.
  • 04/02/2005 Don't scan for more segments when NextUID is null, ask the user if he wants to load embedded fonts, better support for files without cues.
  • 29/01/2005 Fix an obscure bug that prevented the value box from being shown in properties when invoked via MPC.
  • 28/01/2005 Added a much better language selection option, you can specify audio&sub language pairs now, added nested chapters support.
  • 28/01/2005 AVI support can be enabled in the installer, fix a possible division by zero in AVI parser, display proper error messages on Win9x, add DXN Fusion multisegment files support.
  • 24/01/2005 Properly display ampersands in context menu.
  • 23/01/2005 Relax cue checks a bit, so valid files are not rejected by the parser. DShow: don't deliver samples at a wrong time (this could lead to crashes in ffdshow and other downstream filters).
  • 20/01/2005 Installer improvements: added an option to disable existing matroska splitters, Matroska file types are now added to the WMP open file dialog.
  • 19/01/2005 Merge segments with identical codecs into one virtual segment. Split files now look the same as the original.
  • 16/01/2005 Add AR signaling for Zoom player, fix typo in options.
  • 11/01/2005 Fix rundll32 path.
  • 11/01/2005 Add another mediatype for A_REAL, it should play in MPC now.
  • 11/01/2005 Fix chapters support that i've broken two days ago, fix file sharing modes on open.
  • 10/01/2005 Fix seeking in files that don't start at 0.
  • 10/01/2005 Native mpeg4 support, fix tree in properties page, automatically load linked files (needs to be enabled in options).
  • 06/01/2005 Start menu shortcut, better win9x support, other small fixes and improvements.
  • 02/01/2005 Win9x support.
  • 02/01/2005 Mode2 cd support, various fixes and improvements.
  • 17/12/2004 Flac playback fixed.
  • 17/12/2004 A complete rewrite with many new features.
Download:
http://haali.cs.msu.ru/mkv/


I have been using this parser for MKV till now and it is working like a charme.

Cu filewalker

#2 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 10 March 2005 - 11:00 PM

the mp4 format is pretty much quicktime, can you ask him to make the filter support the quicktime formats?

#3 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 11 March 2005 - 01:51 PM

I asked Mike at the Matroska mailinglist...I'm waiting for an answer.

updates:
  • 11/03/2005 Plugged a memory leak when closing the file.
  • 10/03/2005 Assume mpeg2-aac is the same as mpeg4-aac in mp4.
Cu

edit:
His answer was:

I have no plans to add quicktime support at this time. Maybe later if I get
reasonable docs.

:)

#4 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 13 March 2005 - 02:56 AM

Tell him that I believe QuickTime is the same format as MP4 just with additional formats (Sorenson and such).

#5 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 14 March 2005 - 09:39 AM

update:
  • 14/03/2005 Xvid&divx decoders for mpeg-4/asp in mp4 compatility (these want a sequence header prepended to each frame to work), you need to enable mp4v fourcc in xvid for this to work.
  • 11/03/2005 Plugged a memory leak when closing the file.
I'll ask him again.

Cu

#6 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 15 March 2005 - 10:15 PM

update:
  • 16/03/2005 Stream switching fixes.
  • 15/03/2005 Fixed mpeg4 asp bframes in mp4.
Cu

#7 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 17 March 2005 - 02:59 AM

Now if only his filter was not both a splitter and a source filter.

#8 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 17 March 2005 - 09:47 AM

update:
  • 17/03/2005 Added workarounds for broken and weird AVI files.
@Blight
Is it difficult to support his parser in ZP?
It works fine for me. The only thing is that I have no access to ZP's stream switching feature(Audio/subs).
But on the other hand, for MP4, Nero also has only a parser (source & splitter as one filter). So for MP4 there are also only parsers available atm...not only limited to MKV.

It would be awesome if you get stream switching working with Halli's parser in next beta of ZP. :)

Btw. I haven't got any further answer from Haali regarding Quicktime support. :)

Cu

#9 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 18 March 2005 - 12:04 AM

won't be in next beta as next beta is in the next 1h.

#10 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 18 March 2005 - 09:37 AM

Okidoki,

just in the case that you forgot group-id code for each stream category (audio/video/sub) and LCID values from Haali's answer in the feature request thread:

Yes, both things. The groups are:

0          Video
1          Audio
2          Subtitles (changed from 4294967280 today)
17        Segments (if the filter opened many files, or there are many segments in one file)
18        Editions (not chapters!)

Chapters are provided via IAMExtendedSeeking

17 & 18 are arbitrary numbers that I selected, I can easily change them if they
conflict with something.


/Mike



#11 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 19 March 2005 - 07:39 PM

updates:
  • 19/03/2005 Better handling of multichannel audio in mp4.
  • 19/03/2005 Added wavpack support, vorbis in mp4 support.


#12 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 22 March 2005 - 08:48 AM

  • 22/03/2005 Hybrid wavpack support, misc bugfixes.


#13 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 22 March 2005 - 09:08 AM

file:
read my comments on the beta thread... haali needs to fix some things.

Not to mention, he should probably call it the "Haali Media Splitter" as it does more than matroska now.

#14 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 22 March 2005 - 01:04 PM

Hi Blight,

I posted your comments at the Matroska Mailinglist to reach bugfixing as fast as possible and Mike answered:

> "There's a bug in the haali filter. If you add directvobsub to the graph and
> then render the filter's subtitle pin, it won't connect to DirectVobSub...
>
> This is why ZP isn't showing subs with the haali splitter.
>
> I'm working to add support for stream-switching and such, but haali would need
> to fix his splitter for subs to work.
This is news to me, as it obviously connects properly in other players.

>
> edit:
> Arrgh, his splitter seems to be running over the entire filter list and creating
> each filter, this causes filters with debug-protection to kill ZP while I'm
> working on the code, not to mention, it's slowing down load times if your system
> is full of filters (like mine is).
There is no such code in my filter. I suspect the FGM is doing that because the
output pin type is specified as wildcard in registration data.

On a side note, it'd be nice if blight could mail me directly or come to our irc
channel, then the issues could be resolved a lot more quickly.

/Mike


Here's info for contact:

email:
<mike <at> po.cs.msu.su>
irc information:
http://www.matroska.org/contact/index.html.en#irc


Cu filewalker

#15 mitchjs

mitchjs

    Greenhorn

  • Members
  • PipPip
  • 15 posts

Posted 23 March 2005 - 09:26 AM

haali's is the 1st splitter that seems to work in zp with the embedded
chapter information in mkv files


mitch

#16 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 23 March 2005 - 07:13 PM

Actually, gabest's should also work for internal chaptering.

btw, to get subs to work with this splitter, you need DirectVobSub v2.37 or whatever gabest will call it when he eventually releases it. Cause in 2.36 there's a bug on certain systems that makes the video appear totally black and 2.33 doesn't work at all as it won't connect to the splitter.

#17 filewalker

filewalker

    Guru

  • Members
  • PipPipPipPip
  • 339 posts

Posted 24 March 2005 - 11:31 PM

haali's is the 1st splitter that seems to work in zp with the embedded
chapter information in mkv files

Yes, I had never problems with chapter support with Gabest Splitter...

IIRC Toff released a fixed VSFilter version (based on 2.33) which autoloads to Haali's parser. Worked fine for me...so as a workaround solution it should probably work.
(It's inside this .rar package)
http://www.matroska.org/~toff/103_rc4_filters.rar

The only fix is that it's able to autoload with Haali's Splitter.



Cu

#18 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 25 March 2005 - 08:41 AM

Well, gabest has fixed the problem for the official one, I have a fixed build here, just waiting for him to do it officially.

#19 ChristianHJW

ChristianHJW

    Newbie

  • Members
  • Pip
  • 7 posts

Posted 01 April 2005 - 10:06 PM

As a clear, official statement from the matroska team :

Haali's splitter will become the new, official matroska DirectShow splitter because
- Haali's lib ( C integer ) is also the basis for MKV support on PDA/smartphones in betaplayer
- Its actively developed, and Haali is a steady guest on our channel so we know what he is doing and what he is NOT doing
- it has a tray icon allowing WiMP player users ( yes, they not only exist still, they are uncountable :( ) to switch audio streams without using Morgan Stream switcher

Gabest has done a lot for our project, but IMO on the other side he also never took us really seriously. Coding the matroska splitter over 2 nights, and these are his own words, was nothing else but a 'finger training' for him. Gabest never truely believed that matroska could become an important part of the multimedia world, especially the free one. And when he was recently launching his own container format, maybe another finger training :D, he IMO showed clearly that he never took us seriously.

We owe him a lot, his splitter was much better than our own one ( mkxds.dll ) and is certainly one of the major factors for matroska's success during the last 2 years. 1 Mio downloaded matroska packs should be a good proof for that i guess, and 99% use his splitter.

However, for the future we need to have the splitter developed by an active team member who believes that matroska has a real future. Gabest is a genius and i wish him all the best. I just hope he won't have any negative feelings about us deciding against using his splitter in future packs, but we meanwhile prefer to work with good coders who are real active team members, rather than hoping to find a new version of the software we need so very urgently, and by chance on the internet, after getting hints from our users ;) .....

Christian
matroska project admin
http://www.matroska.org

#20 bLight

bLight

    Lead Developer

  • Admin
  • PipPipPipPipPip
  • 9499 posts

Posted 03 April 2005 - 02:04 PM

Well, next ZP beta adds more support for Haali's splitter.

The thing is, while the library itself is opensource, is the splitter so? I mean, if something happens to haali, or he gets bored with the project, what then?