[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-multimedia
Subject:    Re: Video streaming
From:       Eugene Kuznetsov <divx () euro ! ru>
Date:       2000-12-29 19:46:23
[Download RAW message or body]

Hello Stefan,

Friday, December 29, 2000, 7:52:36 AM, you wrote:


SW> Doing "streaming video" may mean different things. One would be that the
SW> input of an object which plays something is a stream (rather than a file).
SW> In fact, there have been some discussions on the list recently, and some
SW> ideas for interfaces for doing this have been floating around, but right
SW> now, nobody has really tried to implement the necessary bits of code. Martin
SW> Vogt - if I understood him correctly - wanted to give it a try, but not
SW> before KDE 2.1.

SW> Then, "streaming video" may mean that you have a stream of pictures rather
SW> than a stream of samples, managed my aRts, so that you can for instance
SW> apply effects to pictures in a streaming fashion. While I think something
SW> like this would be great, it's quite a bit of work, and it's work that
SW> goes deep into the framework. It would allow writing encoders and decoders
SW> accepting a stream of pictures, though, so that you can for instance convert
SW> a video into a different format, or grab something with your TV card.

SW> Finally, "streaming video" may mean something completely different.

SW> As for mpeglib <-> aRts, the relation is this: aRts standarizes how certain
SW> types of objects are to be implemented, and how they interact. On the other
SW> hand, mpeglib implements some objects for playing something. However, to
SW> implement an "Arts::PlayObject", you need not use mpeglib. So you can write
SW> your video objects independant from mpeglib.

I need to explain more properly what I meant... Right now I see that
arts is used only for management of sound and PlayObject interfaces.
Code that does all actual work on parsing, decoding and drawing anything
is safely hidden beyond undocumented and obscure interfaces of mpeglib.
What's worse, it is unusable for anybody who does not want to completely
integrate into it.

I recently studied how this is done in MS DirectShow. DirectShow MPEG
player might consist of File Reader object, MPEG Demultiplexer object,
two Decoder objects and Renderer object. All these small objects have
predefined DirectShow interfaces and are connected using simple rules.
Programmer can insert his own filter somewhere in the graph without need
to change much code. He can rearrange a few objects and receive a
 MPEG->AVI recompressor. You probably understand what's this, it is
close to what you describe in the second paragraph of your message.

I know that I don't need mpeglib to implement Arts::PlayObject (already
done it in my project), but I don't like the idea of having two
incompatible video & audio renderers, audio/video syncers, etc.
For sure this would require much work, you'll need to define all
necessary interfaces, apply heavy changes to mpeglib, but I think that
it's worth it.

-- 
Best regards,
 Eugene                            mailto:divx@euro.ru


_______________________________________________
Kde-multimedia mailing list
Kde-multimedia@master.kde.org
http://master.kde.org/mailman/listinfo/kde-multimedia

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic