Make a new plugin with one element like fdsink or filesink
Hannes
hannesbohny at yahoo.de
Wed Aug 24 11:23:20 UTC 2016
Hello,
I would like to make a new gstreamer plugin with one element which is
very similar to fdsink (or filesink). My key goal is to be able to
handle a videostream (generated by a pipline like "gst-launch-1.0
imxv4l2videosrc ! imxvpuenc_h264 ! mysinkelement") on "byte level", that
means where I can forward the data to another program (also written in
C) which encapsulates the video data in a customized protocol (this part
works already and is not of my concern).
The whole thing will run on a single board computer called Gateworks
Ventana GW5100 with a i.MX 6Quad Cortex-A9 quad-core Processor, which
has a video processing unit (VPU) as HW-acceleration and runs on a
Ubuntu based OS with preinstalled gstreamer-1.0 and gstreamer-imx plugin.
A few weeks ago, I tried it with the gst-element-maker of the
gst-plugins-bad and with the gst-template package descriped in the
GStreamer Plugin Writer’s Guide, but with none of it, I was able to load
and use the plugin. What exactly besides the *.so file is part of a
plugin (or an element)?
I also tried to copy and rename fdsink in the gstreamer tree and rebuild
the whole gstreamer core, but here as well, the build process failed,
because I was not able to determine where to add a reference to the
copied and renamed .c- and .h-file and I think this is not a proper
solution...
Recently I just edited the fdsink.c and used this element in the
uninstalled environment (created by create-uninstalled-setup.sh in
scripts of gstreamer core) to test my new sink element, but on the
single board computer I got problems with this solution when I tried to
build a pipeline containing elements of the gstreamer-imx plugin.
I know it is not very helpful, that I don't have further details on how
exactly I failed because it's already some time ago, but I would like to
ask, if anyone can give me kind of a road map on how to create an own
element based on the source code of fdsink. This would really help! Also
I would appreciate some advice on the method (which of the above
described is a proper way?) about creating new elements, since I found
almost nothing about that in the internet.
If possible, I would like to avoid rebuilding the gstreamer core on the
single board computer, because of the dependicies with the gstreamer-imx
plugin. Is there a way to just add a new plugin and only include it to
the preinstalled gstreamer core? If yes, where can I append a path to
GST_PLUGIN_PATH of the preinstalled gstreamer core and is this enough to
include a new plugin?
Thank you very much!
Regards,
Hannes
More information about the gstreamer-devel
mailing list