[gstreamer-bugs] [Bug 300932] New: [PATCH] add a GST_ELEMENT_WORK_IN_PLACE flag to gstelement

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Sun Apr 17 03:48:50 PDT 2005


Please DO NOT reply to this by email. All additional comments should be made in
the comments box of this bug report.

 http://bugzilla.gnome.org/show_bug.cgi?id=300932
 GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: [PATCH] add a GST_ELEMENT_WORK_IN_PLACE flag to
                    gstelement
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: luogni at tin.it
         QAContact: gstreamer-bugs at lists.sourceforge.net
                CC: all-bugs at bugzilla.gnome.org


ok, let me explain:
My goal is to make a pipeline like .. ! decodebin ! identity !
some_passthrough_element ! xvimagesink
as fast as .. ! decodebin ! xvimagesink.

The problem is this:
decodebin ask for a buffer with _pad_alloc_buffer on identity sink pad. Identity
doesn't have a _pad_alloc_buffer function so buffers are allocated with
gst_buffer_new_and_alloc. Instead in the decodebin ! xvimagesink pipeline
buffers are allocated (a lot faster) by xvimagesink. 

What this patch does:
1) adds a GST_ELEMENT_WORK_IN_PLACE flag to gstelement.h
2) Elements that are acting as passthrough (like identity, a not active
videoscale, a not active ffmpegcolorspace, image filters that writes directly on
the buffer and so on) should set this flag (on this patch i have only changed
identity)
3) gst_pad_alloc_buffer (in gstpad.c) now works like this:
  a) Try to see if the peer pad exists and support bufferallocfunc. If yes then
use it.
  b) If the element has GST_ELEMENT_WORK_IN_PLACE setted try to proxy the
request on the peer element.
  
Status of the patch:
It's just a proof of concept right now.. I want only to know if this is a good
solution and which are main problems of this approach (i'm just trying to learn
gst core). I'll work better on this if this solution will be accepted.

Please tell me your ideas regarding this patch :)

------- You are receiving this mail because: -------
You are the assignee for the bug.
You are the QA contact for the bug.




More information about the Gstreamer-bugs mailing list