From: Arpi <ar...@th...> - 2002-12-31 00:59:11
|
Hi, > > You apparently forgot that the QT codecs' support are 100% done by MPlayer > > developers, xine was only "inspired" (according to the source), just like in > > other cases: Real codecs, Real demuxer, etc.. > > Wrong again: xine's Real demuxer was an original creation by > myself and heavily extended by Guenter and Stefan. hmm. lol. how original... mplayer: if (0x40==(vpkg_header&0xc0)) { // seems to be a very short header // 2 bytes, purpose of the second byte yet unknown int bummer; bummer=stream_read_char(demuxer->stream); --len; mp_dbg(MSGT_DEMUX,MSGL_DBG2, "%0.2X",bummer); vpkg_offset=0; vpkg_length=len; } else { if (0==(vpkg_header&0x40)) { // sub-seqnum (bits 0-6: number of fragment. bit 7: ???) vpkg_subseq=stream_read_char(demuxer->stream); --len; mp_dbg(MSGT_DEMUX,MSGL_DBG2, "subseq: %0.2X ",vpkg_subs vpkg_subseq&=0x7f; } // size of the complete packet // bit 14 is always one (same applies to the offset) vpkg_length=stream_read_word(demuxer->stream); len-=2; xine: if (0x40==(vpkg_header&0xc0)) { /* * seems to be a very short header * 2 bytes, purpose of the second byte yet unknown */ int bummer; bummer = stream_read_char (this); size--; #ifdef LOG printf ("demux_real: bummer == %02X\n",bummer); #endif vpkg_offset = 0; vpkg_length = size; } else { if (0==(vpkg_header & 0x40)) { /* sub-seqnum (bits 0-6: number of fragment. bit 7: ???) */ vpkg_subseq = stream_read_char (this); size--; vpkg_subseq &= 0x7f; } /* * size of the complete packet * bit 14 is always one (same applies to the offset) */ vpkg_length = stream_read_word (this); size -= 2; ok let's say it's just "inspired". :) (anyway not even "inspired" is written in file's copyright...) (while the word "inspired" has been "infected" by Sigma design a while ago, so writing "inspired" nowdays means "stolen" in the opensource world...) and my favourite part of xine's demux_real: static int stream_read_char (demux_real_t *this) { uint8_t ret; this->input->read (this->input, &ret, 1); return ret; } static int stream_read_word (demux_real_t *this) { uint16_t ret; this->input->read (this->input, (char *) &ret, 2); return BE_16(&ret); } why to emulate mplayer's stream layer API by these funny wrappers? :) > But, hey, let's not go into all the modules that have > cross-pollinated across the projects. As you well know (or should know), > MPlayer has adapted entire modules from xine. for example??? i don't know any... the only parts (known by me) in mplayer from xine: - closed-caption dvd subtitle decoder (sub_cc.c) - pnm:// streaming code (pnm.c) - your svq1 decoder (not used, we're using libavcodec's one now, yes it's from xine too, ough no, it's from mplayer as we optimized it a bit...) - the C version of avifile's DirectShow interface files or do you call these small files 'modules'? we call the whole libs or layers (with own API) modules. or are you talking about the win32 code? i've never seen a single line patch for the win32 emu layer made by xine ppl. yes we're using the DS_AudioDecoder.c & DS_VideoDecoder.c from xine (the other files are from avifile), while you're using our C conversion of DMO_AudioDecoder.c & DMO_VideoDecoder.c... i don't want to say it's bad. it's good. just _try_ to keep the credits/copyrights ok. (and don't advertise features as being your own one) (for example see our news/freshmeat announces/changelogs: 'ported from xine' is always there...) A'rpi / Astral & ESP-team -- Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu |