[Gtk-sharp-list] Gtk.Image "refresh" image area

Mauricio Henriquez mhenriquezs at terra.cl
Wed Apr 16 13:30:16 EDT 2008

ok, i fix my problem and now i have a nice widget that can be drag and 
drop from monodevelop toolbox and i can set the v4l source or file and 
works nice and don't block the main app...if someone is interesting in 
such kind a widget please let me know...

thanks anyway


Mauricio Henriquez wrote:
> Hi Guys:
> My name is Mauricio and this is my first post to the list, so hi to all!!.
> I'm playing around  a lot with the Gtk.Image + Pixmap and Pixbuf types 
> in mono/gtk-sharp to build a VideoPlayer widget with the ISE.Video 
> library from the Icarus project (http://icarus.sourceforge.net/), but 
> now I'm a little confuse about the pixmap and pixbuf and convertions 
> between both and also about the gtk.image :-S , let me explain the 
> situation and please be pattience with my poor English:
> The ise.video library works as a wrapper for Tao.FFmpeg and let us to 
> work with a "Decoder" that can be used to decode a video file, images 
> from URLs or even from v4l source, the ise.video library expose a number 
> of "video handlers" for different scenarios, like a "texture" one to be 
> used in opengl scenes, a "Bitmap handler" to work in winforms scenarios 
> (I allready have a primary working version of the videoplayer for 
> WinForms and run nice in mono/linux in a winform app showing videos and 
> also my webcam!!, very cool!!), and also a "Pixbuf handler" to use in 
> Gtk# scenarios. Right now I have a simple "pixbuf handler" in a Gtk# app 
> with a Gtk.Image widget, this example app is capable of show a video 
> file or a v4l source in a gtk.image widget allmost without problems...
> Rigth now, the idea is have a custom widget capable of do all the needed 
> configuration "internally" (decoder configuration, etc..), for the 
> winform videoplayer version we do that creating a class the inherit from 
> a simple PictureBox control, so the idea is to do something simillar 
> here (I know that may be you are goin to recomned to use some kind of 
> opengl widget for intensive graphic things, but the current state of 
> gtkopenglarea is not somehting that we whant right now and can be used 
> in a "version 2" of the gtk-videoplayer).
> My problem right now is that I have a VideoPlayer class that inherit 
> from Gtk.Image and add a public "Play" method, the "play" method do all 
> the configuration needed by the decoder and begin the "frame reading 
> loop" (I know that I can have problems related to block the main gtk app 
> loop, but right now that is my second concern :-) , then in each 
> "reading" the "Pixbuf handler" return a updated "frame" (of pixbuf type) 
> and I need to set the "frame" to the internall Pixbuf member of the 
> widget, I do that with a simple: this.Pixbuf = PixbufHandler.frame; but 
> then I need to force for a "update" or "refresh" of the widget to 
> actually see the image displayed and that is the beggining of my 
> problems. How can I do that in a simple way?
> Previously in the simple pixbuf handler test (the one with a simple 
> gtk.image widget in a gtk# window) I be able to call to the 
> this.GdkWindow.ProcessUpdates(true); becouse the gtk.image was in the 
> gtk# window, so calling to the ProcessUpdates refresh all the childs and 
> with that all OK...but right now is more dificult to me, becouse inside 
> my custom widget the GdkWindow return "null" (I don't know way...). I 
> also try with the this.QueueDrawArea(0, 0, 800, 340); inside my custom 
> widget but to work witht the "Queue" methods I need to also use the 
> Configure and Expose events and that force me to do some type 
> convertions between PixBuf and pixmap...and is kind of confuse to me, so 
> probably exist a more "direct"way to update the widget screen...I also 
> try to inherit from the DrawingArea widget but also force me to do some 
> convertions...
> Sorry for the long explanation but i think that is needed to understed 
> what I'm trying to do..
> Any sugestion is apreciated...
> In advance thank you..
> Mauricio
> _______________________________________________
> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

More information about the Gtk-sharp-list mailing list