[REBOL] Re: RFC: REBOL Home Multimedia Platform (RHMP)
From: petr:krenzelok:trz:cz at: 29-Dec-2001 6:28
Well, multimedia - Carl's second name - do you remember? :-) Some time
ago I asked Holger, if Rebol/View could be as an general GUI engine for
some underlying embedded OS. IIRC his answer was something like that it
is NOT all that easy - you still need drivers which know how to talk to
your hw. I think that you can only think about Rebol/View as an Desktop
replacement, or just maybe plain and simply - start Rebol/View desktop
once your OS is loaded ....
As for multimedia - as Holger mentioned too - you have to deal with
various formats, owned by various companies. Don't expect Rebol staying
small in size, while implementing .avi, .divx, .mpeg, .mp3., .wav etc
support itself. I think RT should just create native engines (ports),
providing you a standardised/unified bridge to underlying system
capabilities. I know that you, the same as me, the same as others, would
like to see MagmaOS (RebOS) to come to life one day, and be proud of
small, efficient, STAND-ALONE rebol OS, not just Rebol hosted on some
platform. But look at Amiga and their take to introduce native AmigaDE
(Tao Intent based) OS - no luck for more than 3 years already ...I think
that such scenario is not even practical to Rebol - Tao for e.g. has
nice Virtual Processor (along with hw abstraction layer) architecture,
and you can implement some media player directly in VP code = Rebol code
for us. Can you imagine implementing .mp3 decoding engine directly in
Rebol code? Sadly - Rebol is tooooo slow here and impossible to compile ...
... So you need a library interface. We have one. I remember Jeff
stating there were some changes to library interface, but those changes
were not introduced yet. Anyway - it is easy (very easy) to speed the
thingy up. I for one, created Rebol/View face native library effect.
Well, not me, but my Linux friend. You just send your face referencing
word to library, and you suddenly have access to image data buffer. We
messed image data a bit, did refresh on face, and voila, it was there.
That's exactly the way I think Morpheus will use. They surely are not
implementing multimedia players 1) in Rebol - lack of speed 2)
themselves at all.
I am not sure .e.g. Windows media player provides you any kind of api,
allowing you to receive pointer to image in memory, once rendered. It
would be cool, if View could display it inside your face, so cool .... I
asked about possibility to have media player window embedded inside View
face, but RT have not provided me with clear answer, so I don't know ....
Another thing is asynchronicity - remember - once you do something in
your library code - you are simply there, and imo rest of the Rebol just
sleeps. We would also need something along the Amiga device model -
ability to call libraries (interfaces) asynchronously. I talked with
Holger on IOS conference, and he told me, that RT plans to rework timers
some time later, to work along the lines of Amiga device model, so be of
more usage in various situations ... Cyphre also sent few enhancement
requests to Holger, IIRC. E.g. according to Cyphre, ability to
face events, while face is still in display, would
allow us to implement basic scheduling mechanism ("task" priority),
based upon timing, directly in Rebol level.
Now back to your idea. What hardware are you talking about? If you think
you will implement one yourself, so better forget it, if you don't have
enough money. I am part of small team doing some hw stuff, and man - it
costs money .... and time ....
So let's imagine you will use some 3rd party hw. OK - is the OS
delivered with it? Well, to be honest, - if I would implement some kind
of set-top-box, I would go with QNX Rtp, even if it costs money. You pay
for the support and you get what you paid for. The OS covers small and
efficient kernel, is message based, nicely scales (QNet capability).
Photon architecture is nice too. It provides you with POSIX compliancy,
so you can port from Uni*es "easily". It also provides you multimedia
layers. If I would not go with QNX, then I would considered some kind of
embedded Linux, but I am not sure of support here ... Tao for e.g. has
yet to prove its ability to be used directly on various hardware set-ups ...
But - if you think of Rebol/View as an GUI/presentation layer only, it
could be done, although the lack of proper browser plug-in is critical
imo, as Rebol itself is not capable/fast engough, for browser to be
implemented in it. Imagine e.g. mailer app. You an do it with rebol, but
how do you display html based messages? Our company Lotus Notes team
switched to html based emails as a default set-up. Well, you can say - I
will display it in browser thru browse feature, but - it is pretty
inconsistent as far as mailer app is concerned ... there is probably
even more issues ...
It would be interesting to know Holger's or Carl's opinion, as they hold
the keys to Rebol future, and I can bet they already thought about Rebol
possibilities in multimedia, set-top-box market, as they both come from
Amiga/set-top-box land ....