Create GStreamer plugin in VisualStudio 2015

David Ing ding at panopto.com
Wed Nov 28 16:08:58 UTC 2018


I did some preliminary plugin development on VS 2015, so I can probably
help you out with that.


After VS 2010 the MSVC Runtime was fractured into a bunch of separate libs,
so things have changed which prevents the VS 2010 property sheets from
working properly.  If you are using VS 2015 then you want to avoid all of
the property sheets in the installation folder ...

%GSTREAMER_1_0_ROOT_X86_64%\share\vs\2010\msvc

... where my environment variables are:

GSTREAMER_1_0_ROOT_X86_64=C:\dev\gstreamer\%GST_VERSION%\x86_64
GST_VERSION=1.14.3

Fortunately, all of the property sheets in the following folder work fine:

%GSTREAMER_1_0_ROOT_X86_64%\share\vs\2010\libs


Here is an example of a property sheet that works with VS 2015 (where I am
consuming gst-editing-services):

https://github.com/adaviding/gstreamer-playground/blob/master/ges-slide-composition/props/x86_64.props


I'm not sure if the following clauses are really necessary if you simply
allow visual studio to include the default property sheets for a given
build.

Under Debug:  <AdditionalDependencies
>libucrtd.lib;libcmtd.lib;libvcruntimed.lib;libcpmtd.lib;msvcprtd.lib;%(AdditionalDependencies)</
AdditionalDependencies>

Under Release:  <AdditionalDependencies
>libucrt.lib;libcmt.lib;libvcruntime.lib;libcpmt.lib;msvcprt.lib;iphlpapi.lib;%(AdditionalDependencies)</
AdditionalDependencies>


In the example above, I made the mistake of starting from the VS 2010
property sheets under the "msvc" folder and then I fixed what was broken
(it wasn't easy).  If I were to do it over, I would just start with a
normal VS 2015 C++ project and include at least the following property
sheets (for plugin development):

gstreamer-1.0.props

gstreamer-base-1.0.props

gstreamer-pbutils-1.0.props

I believe that by including the property sheets above, you will resolve the
error regarding GST_PLUGIN_DEFINE and VERSION.

If you run into linker errors (can't find a particular symbol) then try
searching the *.lib files for that symbol (perhaps I was using a hex
editor, or perhaps I was using the `grep` command from GitBash ... I can't
remember).  Once you figure out which *.lib file defines the given symbol
then you can find the property sheet that goes with that *.lib file, and
include it into your project.

On Wed, Nov 28, 2018 at 3:12 AM Sharden <vickarchuck at yandex.ru> wrote:

> Hello everyone!
> I am trying to create a plugin from official Plugins Writer's Guide -
> https://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/pwg.pdf .
> I cannot use make_element for creating my own plugin from gstplugin.c/h
> files (from
> https://cgit.freedesktop.org/gstreamer/gst-template/tree/gst-plugin/src)
> but
> I saw what it does on Linux machine and replaced everything myself. I
> replaced all "gstplugin" entries with "mynewplugin". I also tried to use
> gsttransform files from the same page.
> I added proprties included in the gstreamer sdk - gstreamer-1.0.props and
> tried to build the dll file. It showed me an error in macros
> GST_PLUGIN_DEFINE: VERSION - undeclared identifier.
> Also Visual Stufio itself starts to behave strangely - intellisene always
> parses something and I am not able to close VS as it does nothing when I
> try
> to close it. Looks like the prop files which were designed for VS 2010 does
> not work for 2015.
> Does anyone has an experience of writing plugin via Windows on VS 2015? Any
> help will do!
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20181128/09465c13/attachment.html>


More information about the gstreamer-devel mailing list