Is there a generic transform element ?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Is there a generic transform element ?

filnet
Hi,

Is there a generic transform element ?
Something similar to appsrc or appsink but for transforming video frames.

Such an element would allow application writers to write the transformation in their favorite language.

Cheers,
Philippe.


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Is there a generic transform element ?

Vinod Kesti
Hi Philippe

You can use GstVideoFilter base class for you filter implementation.
https://developer.gnome.org/gst-plugins-libs/stable/gst-plugins-base-libs-gstvideofilter.html 


For reference you can look into videosclae and videobox code.

Reply | Threaded
Open this post in threaded view
|

Re: Is there a generic transform element ?

filnet
Hi Vinesh,

I never received your answer by mail. I keep getting probe messages from the mailing list as some messages bounce. I have a @yahoo.fr address...

Anyways, thanks for your answer.

I guess it should be possible to write an element based on GstVideoFilter in python and register it statically.
I'll look into that.

What I was looking for is an existing element to which I would connect an action signal that would let me process video frames. But if there is no such thing, I'll go for the GstVideoFilter base class.

Philippe.
Reply | Threaded
Open this post in threaded view
|

Re: Is there a generic transform element ?

Vinod Kesti
Hi Philippe,

I am not aware of such plugin. Only appsrc and appsink handled data through callbacks. Rest all the elements handle buffers through pads.

Writing plugin on top of GstVideoFilter  simple. below are the simple APIs.
https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/GstVideoFilter.html

you have to put your processing code in transform_frame or transform_frame_ip function as per your need.