[Matroska-devel] Re: email adress of David Bryant for wavpack 4 integration into matroskatools ?

Christian HJ Wiesner chris at wiesneronline.net
Tue Nov 11 11:00:34 CET 2003


Hi guys,

any news here we could forward to David Bryant, the Wavpack author, 
about how he would have to write his lib for easy integration into our 
tools ? I guess the recent work we have been doing with FLAC and libflac 
should have resulted in some usable experience here ? jccston just said 
on IRC :

jcsston <irc://127.0.0.1/jcsston,isnick> 	<ChrisHJW> why oh why cant 
these compression format devs not separate framing and codec <-- anytime 
you put something inside another thing you are going to get overhead. If 
you zip a zip the second zip will be larger.
jcsston <irc://127.0.0.1/jcsston,isnick> 	an ideal lib interface would 
work in a frame-by-frame basis
jcsston <irc://127.0.0.1/jcsston,isnick> 	don't require the use of 
callbacks. I had to design the FLAC encoder filter in a way so that if 
you drop some audio samples your audio will go out of sync. (blame libflac)



jcsston told me that we currently put FLAC into MKA including its own 
framing, because its more or less impossible to separate the two, the 
FLAC decoder will always expect the frames embedded in FLACs native 
framing ( not sure how this is handled in OggFLAC ? ), means that if we 
wanted to mux the raw FLAC frames into matroska, we either had to 
reconstruct the FLAC framing on demuxing, or rewrite all existing FLAC 
decoders so they can handle raw frames also :( ....

A summary comparison between Wavpack4 and FLAC

                                      Wavpack4                           
FLAC

CPU - encodining :            minimal                              medium
CPU - decoding :              small                                  minimal
Compression :                   good                                  good
5.1                                      yes                           
         yes
x-platform                           yes                                 
   yes
hardware support                  no                                    yes
lossless - lossy mode            yes                                    no

I recommend that, if David could give us a library where codec and 
framing are clearly separated, and as its using lower CPU for encoding 
that FLAC, this would make Wavpack4 the ideal lossless format for video 
capturing and video editing, means for integration into VdubMod and 
making a DirectShow encodee and ecoder filter.

are encoded lossless, but silent scenes are encodedA crazy feature that 
FLAC cant do is the possibility to switch from lossless to lossy mode 
and back from one block to the next. This could save enormous file size, 
if we can enable a mode where comples scenes during capturing using 
lossly mode. An intelligent encoder could even detect if the spare CPU 
power is enough to encode in lossly mode, during a capturing process, 
just a crazy idea of mine ;) ....

@ David Bryant ( pls. use 'reply all' if you answer to this email ) : 
Did you ever consider to look at matroska as your native framing anyhow 
? Please dont make the false assumption that doing so will result in a 
huge overhead in any case, because thats not true. As an example, we can 
store Vorbis more effectively in matroska than it is stored in Ogg, 
thanks to our very efficient lacing system called 'EBML lacing' . 
matroska has a variable header length, so for an audio track many things 
in the headers are simply non-existant, and that way Wavpack4 could 
enjoy a huge fan community meanwhile, also libmatroska/libebml are a 
fixed part of most Linux distro's now already, including GNOME / 
Gstreamer plugins. Making DirectShow filters for Wavpack would be a 
breeze then, as our existing source filters for matroska streams could 
be used fine. We have a powerful tagging system already, and apps to 
write/read them, there is a native replay gain field, fields to tell the 
decoder how many channels the file has, etc. . Just a thought of mine ;) 
.....

Christian

Christian HJ Wiesner wrote:

> David Bryant wrote:
>
>>> One thing that could give you a real advantage IMHO, was to alllow
>>> transition from lossless to lossy mode in one file. Dont know if 
>>> this is
>>> possible, but pls. think about it :-) !
>>
>> Actually, this will be easy in WavPack 4.0 because every block of 
>> compressed
>> audio is completely independent. It will also be possible to store
>> multichannel material with different compression modes for the various
>> streams.
>
> :O !!! You mean this is possible already ? Using lossless for complex 
> sound parts, and lossy for say silence and the like, similar to a 
> mixed mode ? Wow !!!
>
>>> I will ask my devs to email you and send a short description of what is
>>> technically necessary for good matroska implementation. And i know 
>>> Linux
>>> support will be on the very top of their list, amongst other things ;-)
>>
>> I am planning for the code to be easily portable to Linux and even to 
>> the
>> Mac. I may even try the linux port myself as soon as I get that Linux 
>> system
>> going that I have been planning for years...  ;-)
>> David
>
> Looking forward to be able to tell our devs that Wavpack 4 code can be 
> used to start adding it to our muxing tools David :) ! About the 
> requirements of your libs for easy implementation, i hope at least one 
> of the lazy matroska devs now takes the ball and writes something 
> sensible back to you :) ....
>
> Christian 






More information about the Matroska-devel mailing list