matroska Foobar2k implementation

Christian HJ Wiesner <[email protected]> Thu, 18 Dec 2003 19:15:49 +0100
Newsgroups gmane.comp.multimedia.matroska.devel,gmane.comp.audio.mpc.devel
Message-ID <[email protected]>
Hi Jory,

here an interesting IRC log from #foobar2000 on irc.freenode.net for you 
( sorry about the short rant in the middle ;-) ) :

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

<DEATH> wrap mp3/mpc into matroska then kill all improvements it gives 
over raw mp3/mpc
<adiabatic> what's the point of MPC-in-Matroska, anyway?
<DEATH> mpc seeking ist death
<DEATH> inefficient
* CompactDick concurs
<DEATH> think playing mpc+cue over LAN
<ChrHJW_Zhengzhou> yup :)
<DEATH> same goes for mp3
<CompactDick> you can feel the lag on a slower machine, like my PII 366
<CompactDick> ogg works fine here
* ChrHJW_Zhengzhou is still working on his first FLAC + CUE in MKA ed2k 
release, with chapters and other Goodies ...
<DEATH> i made mpc+cue behave semi-decently when playing from local hdd 
on athlonxp
<CompactDick> as it should
<DEATH> but it is still ass in algorithm efficiency terms
* ChrHJW_Zhengzhou is now known as ChrHJW_Beijing
<DEATH> ChrHJW_whatever: some people seem to want to implement mka 
support in fb2k using reader api
<DEATH> that would kill fast seeking
<ChrHJW_Beijing> i understand this is no good idea ?
<ChrHJW_Beijing> oh ...
<DEATH> probably can be hacked to work at all but it is no good
<ChrHJW_Beijing> who are this people ?
<ChrHJW_Beijing> can we convince them to make it better ?
<DEATH> <jcsston> ah, I think I've found the problem. the file class 
handles different 'protocols' file://, http://, etc.(to my 
understanding) if I add a matroska file as a location like 
'matroska://C:/test.mka' the matroska file class is called :) I'm 
guessing that with the default 'file://' the internal file class was 
handling it
<DEATH> havent been able to communicate with him
<DEATH> but he seems to want to emulate reading from a raw mpc file
<ChrHJW_Beijing> oh, Jory
<ChrHJW_Beijing> i talk to him
<DEATH> so no fast seeking for you
<ChrHJW_Beijing> you have a message for him i can transfer ?
<DEATH> lemme say this again
<ChrHJW_Beijing> [email protected]
* ChrHJW_Beijing is logging
<DEATH> you need some kind of third-party-extendable interface that 
turns mpc/mp3/whatever compressed packets into audio data, right ?
<DEATH> add your own interface class to fb2k and let others implement it
<adiabatic> MTRH: A (fairly dated, since there's over a billion of 'em 
now) Monty Python song.
<DEATH> like i did with packet_decoder in 0.7.6 (for MP4 playback)
<ChrHJW_Beijing> got you
<ChrHJW_Beijing> if we add this class, is there a collision with a 
normal MKA reader ?
<DEATH> if you cant get stuff working with packet_decoder interface i 
have in 0.7.6, write your own interface, and i'll add that interface to 
mp3/mpc/vorbis/aac/whatever decoders in foo_input_std
<DEATH> ?
<ChrHJW_Beijing> or can he finish his work to have a first support ?
<ChrHJW_Beijing> even if its suboptimal that way ?
<DEATH> lemme flood how mp4 parsing works again
<DEATH> there is input_mp4 class, which is just like any other input
<DEATH> but it finds packet_decoder interface that can handle data type 
contained in mp4 file being read
<DEATH> and uses that decoder
<DEATH> like writing plugins to a plugin
<DEATH> ideally, MKA could do the same logic
<DEATH> main problem is that you need to be able to call different 
(often third-party-supplied) audio decoders, right ?
<DEATH> anyway, take 0.7.6 mp4 parser as sample code
<ChrHJW_Beijing> sounds good
<DEATH> in foo_input_std
* ChrHJW_Beijing is again wondering about the way jcsston is working .. 
he is always coding first, and communicating afterwards :/ ....
<DEATH> hmm
<DEATH> do you have sample commandline decoder or smth
<DEATH> maybe i should look into implementing that myself
<DEATH> since this thing will probably get popular
<DEATH> would be better if this used same decoder API as mp4
<DEATH> which may involve changes in that api
<DEATH> bbl
-----------------------------------------------------------------------------------------------------