← Back to team overview

openshot.developers team mailing list archive

Re: GTK3 port

 

Andy,
We can easily access the Pixel Array of my new library for any frame, create
a Pixbuf for GTK, and then just load a DrawingArea that uses the in-memory
Pixbuf.  I have already got this working, and it works well.  It just takes
a 1/4 second for GTK and Python to translate the pixels, allocate the
memory, and display the image... which is too slow to use as a video player,
but perfect for showing a frame and letting a user draw on top of it,
annotate it, select areas, etc...  SDL would only be used to draw the "rapid
fire" video frames for playing / previewing a video.  JUCE would be used for
playing audio.

Thanks!
-Jonathan

On Fri, Aug 19, 2011 at 9:23 AM, Andy Finch <we.rocked.in79@xxxxxxxxx>wrote:

> Whatever we end up using, we need to ensure we have the capability to
> 'draw' on the preview screen, e.g. some effects are more useful when
> selecting a specific area of the video.
>
> On 19 August 2011 09:35, eolinwen@xxxxxxxxx <eolinwen@xxxxxxxxx> wrote:
> > HI Jonathan,
> >
> > It will be not helpful but if we could Clutter instead of to use SDL. The
> > Gnome Team have seen the lack of this librairy (i.e less perform than
> Compiz
> > => 30 fps against 60 fps) and they are working on. Canonical saids that
> > although they are using Compiz (better in performance actually), Clutter
> > will be more perform after. Also, Clutter is the future.
> >
> > Maël is on holidays until the 27 of this month.
> >
> > Cheers.
> > 2011/8/17 Jonathan Thomas <jonathan.oomph@xxxxxxxxx>
> >>
> >> Hi Maël,
> >> Sorry I never replied to your email about GTK3 and OpenShot.  I am very
> >> excited about your progress, and of course, GTK3 will be a big move for
> the
> >> OpenShot code-base, and I appreciate your help!
> >> I have been steadily working on the new C++ video editing framework, and
> >> specifically displaying the frame on the screen.  Creating Pixbufs in
> pygtk
> >> (or PyGObject) is very slow (relatively speaking), and in my testing,
> not
> >> feasible for creating a native GTK video player widget.  So, naturally,
> I
> >> looked back at SDL, which uses X11 draw functions, and just draws over
> top
> >> GTK.  However, I'm very interested to know if you have uncovered any new
> >> information about the lack of a get_xid() method in PyGObject?  Clearly,
> >> that is going to be a show-stopper for any SDL based application that
> needs
> >> to draw onto a GTK window.  I have been investigating this as well, but
> I
> >> always end up on a forum, bug report, forum post, or chat log where
> "you"
> >> are asking the question, and nobody is answering you. =)  So, it seems
> like
> >> you have made a huge effort to reach out to the GTK community and figure
> out
> >> a work-around.  Hopefully, you have some good news to share with us...
> >> Here is a recap from my testing:
> >>
> >> GTK is way too slow to create a native pixbuf-based video player, which
> >> needs to update 30 times a second (or faster).  Also, I was able to hook
> up
> >> a Python callback method to draw each frame from my new library, but
> even
> >> the passing pixel arrays to Python was a bit too slow for a video
> player.
> >>  So, I just don't think Python or GTK is going to be able to accomplish
> a
> >> native video player widget.
> >> SDL is incompatible with PyGObject & GTK3, due to the lack of a
> get_xid()
> >> method
> >> Actually, any X11-based drawing library will be unable to draw on GTK
> >> without an XID property
> >> Clutter is based on OpenGL, which I don't really want to require for
> >> OpenShot... but will if I have no other choice
> >>
> >> Also, I have discovered that most video players, including FFplay &
> >> Gstreamer, use an SDL-based or X11-based drawing method.  Regardless if
> we
> >> are using MLT or a new framework, having X11 draw on top of GTK is still
> >> looking like the best approach... assuming we don't want to require
> OpenGL.
> >> Somehow, we really need to beg for the get_xid() method to be fixed in
> >> PyGObject. =)
> >> Thanks!
> >> -Jonathan
> >>
> >> On Thu, Jun 30, 2011 at 4:28 AM, <moimael@xxxxxxx> wrote:
> >>>
> >>> Hi,
> >>>
> >>> Here are some news on my actual work.
> >>> I'm working on the GTK3 version of openshot. Yesterday, i managed to
> get
> >>> a first (almost) working Pygobject/GTK3/GooCanvas2 version of openshot.
> It
> >>> required lot of changes to actually display the UI.
> >>>
> >>> I'm planning to make some modification to start on sane basis :
> >>>
> >>> - Port settings to GSetting(multi-os) and make them non-ui dependant
> (to
> >>> fix a bug with openshot render)
> >>> - Remove the melt dependency (as distribution whose ship GTK3 come only
> >>> with new version of mlt)
> >>> - Remove the embeded gdata api for youtube and use the system one.
> >>> - Some UI refinment to use all the GTK3 power (take advantage on the
> new
> >>> height for width layout system, use new widgets)
> >>> - Maybe some long time standing bug will be fixed with the port
> >>>
> >>> The biggest problem i encounter in this preliminary version is the
> >>> get_xid() function to embed the sdl window in our drawingarea, now it
> popup
> >>> a new window for the sdl preview. It seems that get_xid() is not
> >>> introspectable -introspection = 0 in the gir file), so i have to find a
> >>> replacement. Any idea ?
> >>>
> >>> Maybe this work can end up in a 2.0 openshot release ? What do you
> think
> >>> ?
> >>>
> >>> I think the transition in GTK3 should not happend with the transition
> >>> from mlt to our new video library. It will be to much changes. A two
> step
> >>> transition is better.
> >>>
> >>> Thanks !
> >>>
> >>>
> >>> _______________________________________________
> >>> Mailing list: https://launchpad.net/~openshot.developers
> >>> Post to     : openshot.developers@xxxxxxxxxxxxxxxxxxx
> >>> Unsubscribe : https://launchpad.net/~openshot.developers
> >>> More help   : https://help.launchpad.net/ListHelp
> >>>
> >>
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~openshot.developers
> >> Post to     : openshot.developers@xxxxxxxxxxxxxxxxxxx
> >> Unsubscribe : https://launchpad.net/~openshot.developers
> >> More help   : https://help.launchpad.net/ListHelp
> >>
> >
> >
> >
> > --
> > Olivier
> > Cenwen un elfe sur la banquise/ an elve on the ice
> > Mon blog perso  sur le multimédia, Ubuntu, Linux et OpenShot :
> > http://linuxevolution.wordpress.com/
> > Le forum d'Openshot où vous me trouverez : http://openshotusers.com/
> > http://openshotusers.com/forum/index.php
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~openshot.developers
> > Post to     : openshot.developers@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~openshot.developers
> > More help   : https://help.launchpad.net/ListHelp
> >
> >
>

References