ClutterGst plans



Hi all,

Since Clutter has changed quite a bit in the last few releases (deprecated ClutterTexture/ClutterMedia), also we pretty much wanted to rework how ClutterGst does things at the moment, and quite a few people from Collabora submitted some patches on bugzilla to add Camera support to ClutterGst. Damien and I figured it would be a good time to look at how we could do things differently for a ClutterGst 3.0 API.

So I think the most important change would be to detach what is playing the video from what displays the video. In recent patches from Collabora [1], a ClutterGstActor class has been introduced. I think it would be cool if we could use this class as a point of display for a media pipeline. Basically this class/interface would just be charge of drawing images on the screen. And the way we set what it's going to be display, is by attaching a player element to it.

clutter_gst_actor_set_player (actor, player);

Now the player class would be pretty much anything that can output a video frames. Like a Camera player (outputs webcam frames) or a Playback player (outputs frames from a video file/stream). That way it would be easy for anyone to come up with a new kind of player (dedicated to a specific use case) and easier contribute that player to ClutterGst or just bundle it to an app.

Then we could do interesting things, like using a single player but displaying the frames in several different actors. I have a few fun ideas I would like to implement using that feature :).

So roughly (nothing set in stone atm), I would have the following classes/interfaces :

ClutterGstActor : interface/base class to deal with displaying stuff in Clutter
       |
       |-> ClutterGstARActor (displays frames and keeps aspect ratio)
       |-> ClutterGstCropActor (displays part of a frame by cropping it)
       |-> possibly more to come

ClutterGstPlayer : interface to deal with play/pause/etc...
      |
      |-> ClutterGstPlayback (plays back from a file/stream)
      |-> ClutterGstCamera (plays back from a webcam)

ClutterGstPlayerManager : component to deal with frame upload & shader glue

I'm hoping to come up with a prototype within the next 2 weeks (might be a bit optimistic).
Feedback and ideas are more than welcome.

Thanks,

-
Lionel

[1] : https://bugzilla.gnome.org/show_bug.cgi?id=682502


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]