xfmedia 0.3.0 released

Brian J. Tarricone bjt23 at cornell.edu
Tue Nov 2 01:33:53 CET 2004


groundhog3000 wrote:

> Here is the issue,
>
>> the gui part:
>> olivleh1 at kartoffel olivleh1> ps auxww | grep mpla
>> olivleh1 36123 18.3  1.8 20928 11648  p1  S+    4:55PM   0:00.97 
>> gmplayer
>> (mplayer)
>>
>>
>> the video part:
>> olivleh1 36128  1.8  3.1 29224 20212  p1  S+    4:55PM   0:00.17 
>> gmplayer
>> (mplayer)
>>
>> but i'm playing an mpg with xfmedia.
>> Playing an mp3 to compare teapots with teapots:
>>
>> audio part:
>> olivleh1 36136  0.0  2.3 29256 15084  p1  S+    4:57PM   0:00.08 
>> gmplayer
>> (mplayer)
>>
>> Makes 26 MB (gui+audio)
>>
>> And I don't see how the "fully capable" feature should result in a 
>> bigger
>> memory usage. If I don't play an divx or whatever, just an mp3, then
>> nothing has to be in my memory except mp3+gui.
>>
> Beep-Media-Player uses almost no system resources at all.
> Mplayer uses a bit more, but not much.
> It _appears_ as if xfmedia loads all the xine libs before they are 
> needed,
> which leads to a large memory footprint.  Could be a modularization 
> problem ...
> but since I haven't seen the code, I don't know.

um... and what would you suggest it do?  not load them at all?  libxine 
has one initialisation interface, and it's all-or-nothing.  note that 
you're reading values from 'top', which can be misleading.  for example, 
right now i have this:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
24793 brian     15   0  162m 6532  20m S  0.0  2.6   0:15.33 xfmedia

the important number is the RES value (and the SHR value), as that's the 
RAM that is actually active.  the reason VIRT is so large is because, as 
you state, xine loads all of it's various 
input/output/demux/decoder/post plugin libraries on startup.  but only a 
very small number of them are acutally in-RAM at any time (in xfmedia's 
case, four, or five if you're using an audio vis).  note that i also 
have a playlist with 4817 items in it.  each entry involves Gtk widget 
structures for rows in the playlist, as well as the strings that make up 
the title, #, and length field.  it may not seem like much per entry, 
but it all adds up.

in a sense, i can understand why some of you so strongly disagree with 
my use of the term "lightweight", and i may decide that i agree with you 
enough to stop using it, or better describe it as a "lightweight UI" or 
somesuch.  the fact of the matter is, i'm offering a fully-functional 
solution that you can (when it's more mature) use to replace both 
xmms/bmp and xine/mplayer if you so desire.  if you're going to make a 
comparison based on that, load up gmplayer and xmms/bmp at the same 
time, and add up the memory usage of both.

i'll work to reduce memory usage where possible, but there's only so 
much i can do.  i want to get it working, usable, and feature-complete 
first.  doing heavy optimising at this point would be foolish and a 
waste of time, and anyone who believes otherwise has no clue about 
software development.

xine _is_ a bit heavy on memory at times.  i chose it because, frankly, 
i think it's the best desktop-neutral media framework we have out there 
(feel free to disagree with me, but i don't feel like getting into an 
argument about this, so don't bother starting one).  gstreamer has a 
nice architecture, but it's somewhat unwieldy in its current state.  my 
past attempts to juse _use_ it have been met with failure.  just as 
importantly, i'm not familiar with it, and i've been using xine and 
following their -dev mailing list for a long time now.  mplayer's 
architecture makes it completely unsuitable for use in another project 
(to say nothing of philosophical and personal differences i have with 
the mplayer devs that make me just flat-out not want to use it).  are 
there other frameworks out there?  maybe, but i didn't take the time to 
find them.  i had an itch, and i _wanted_ to use xine, and so xfmedia 
was born.  if you don't like it, don't use it.  no skin off my back.

sorry for the rant, i'll go back to hacking now...

    -brian



More information about the Xfce mailing list