Simultaneous 32 and 64 bit development on the same machine

Lasse Laursen gazoo at 42.dk
Sun Jul 27 23:42:38 PDT 2014


Dear Josh, Ian and Andoni,

Apologies for the long silence, I had to table this issue for a while, 
but I am back now - to finish this once and for all.

Josh - the use of GST_PLUGIN_PATH_1_0 or GST_PLUGIN_PATH is moot, isn't 
it? I mean, sure I'll switch to GST_PLUGIN_PATH_1_0 if the other is 
being depricated, but it doesn't really matter in this context, does it?

Ian - I think any means to develop for either a 32 or 64 bit release is 
game. But why go to the trouble of making a virtual machine when it's 
perfectly possible to run both 32 and 64 bit versions on the same OS? 
I'm sure the virtual machine could perhaps provide a better testing 
platform, but all I aim to do is have them both run. Exact behavior is 
less of a concern, currently.

Andoni - I have both the x86 and x64 versions installed, but I am still 
running into a lot of trouble getting the x64 version of my app using 
gstreamer to execute properly. Using the dependancy walker, I've found 
out that it's still grabbing the DLLs from the 32 bit version of 
gStreamer :( And I am currently completely at a loss as to why. I'm 
literally clueless. My environment variables are as follows:

GSTREAMER_1_0_ROOT_X86 - D:\SDKS\gstreamer\1.0\x86
GSTREAMER_1_0_ROOT_X86_64 - D:\SDKS\gstreamer\1.0\x86_64
GST_PLUGIN_PATH - D:\SDKS\gstreamer\1.0\x86\lib

The PATH variable has nothing in it relating to gStreamer. So looking at 
these environment variables I thought 'aha! Obviously it's the 
GST_PLUGIN_PATH! I read that a colon separated list was ok, and tried this:

D:\SDKS\gstreamer\1.0\x86\lib;D:\SDKS\gstreamer\1.0\x86_64\lib

I know that's technically semi-colon separated, but no-matter. Didn't 
work. Now I've just changed it to the following:

D:\SDKS\gstreamer\1.0\x86_64\lib

Same issue. The 64-bit executable still much prefers the 32bit 
gestreamer DLLs. I'll come clean and say I have 0 understanding as to 
how it currently picks its DLLs. Hopefully some kind soul will clue me 
in, because as it stands now, with the changes made, my 32bit exe works 
great, yet my 64bit version crashes horribly.

Thanks,
Lasse

On 11-07-2014 23:39, Andoni Morales wrote:
>
>
>
> 2014-07-11 9:46 GMT+02:00 Lasse Laursen <gazoo at 42.dk 
> <mailto:gazoo at 42.dk>>:
>
>     Dear GStreamer-devel,
>
>     I've recently found a need to start compiling a 64-bit version of
>     my GStreamer app. I'd prefer not having to give up my 32-bit
>     version though, so I set about to have my cake and eat it too.
>
>     But I'm left with a few questions, to which I may, or may not
>     already have the answers. I could do with some input regardless.
>
>     So the two big challenges I see that need resolving are as follows:
>
>     1. GST_PLUGIN_PATH defined as an environment variable. This can -
>     of course - only point to either the 32 or 64 bit collection of
>     plug-ins. My assumption is that plug-ins are also compiled in
>     either a 32 or 64 bit fashion and should be used with the
>     respective version of the GStreamer library. An earlier message on
>     this mailing list indicated that Gstreamer automatically scans
>     this place:
>
>     DIR/lib/gstreamer-1.0/ where DIR is
>
>     g_win32_get_package_installation_directory_of_module()
>
>     here I'm already a bit curious as whether that changes the
>     directory it points at if you're running a 64-bit version of an
>     application dynamically linked with 64-bit GStreamer...?
>
>     Another helpful user pointed out the option of using 'putenv' to
>     modify the environment variables during runtime, which would then
>     fairly easily let me point the GST_PLUGIN_PATH to the right directory.
>
>     2. The PATH environment variable has the same issue - pointing
>     only to the 32 or 64 binaries. I'm guessing 'putenv' could solve
>     this too, unless someone else has some other cool and easier ways
>     to fix this?
>
>     ------------------
>
>     With both these approaches one thing I worry about it having to
>     remove the default environment variables, as using GStreamers
>     executables separately is quite useful for testing a lot of stuff.
>     But having to continuously add and remove them is quite the
>     hassle. Apart from creating a custom batch file that launches a
>     cmd window and adds these env. variables, I'm also a little at a
>     loss as to how to solve this...
>
>     Any and all thoughts/comments are welcome. I will test this soon,
>     but I am keen to hear existing experience!
>
>
> Hi Lasse,
>
> On Windows GStreamer can be installed in parallel for both 
> architectures and you can work with both archs without having to do 
> anything else on your side.
> Your x64 application will link against the gstreamer library in 
> c:\gstreamer\1.0\x86_64\bin and therefore loads deps and plugins from 
> this prefix, while the x86 one will link against the gstreamer library 
> in c:\gstreamer\1.0\x86\bin and use this different prefix.
> And in case you need to set PATH the installer adds 2 env variables 
> that you can use GSTREAMER_1_0_ROOT_X86 and GSTREAMER_1_0_ROOT_X86_64
>
> Cheers,
> Andoni
>
> Cheers,
> Andoni
>
>
>     Regards,
>     Lasse
>
>     -- 
>     Lasse Farnung Laursen
>     Post.doc at the University of Tokyo
>     www.lasselaursen.com <http://www.lasselaursen.com>
>     FB: lasse.laursen <https://www.facebook.com/lasse.laursen>
>     Twitter: @PMP_J <https://twitter.com/PMP_J>
>
>     _______________________________________________
>     gstreamer-devel mailing list
>     gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
>
> -- 
> Andoni Morales Alastruey
>
> LongoMatch:The Digital Coach
> http://www.longomatch.ylatuya.es
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-- 
Lasse Farnung Laursen
Post.doc at the University of Tokyo
www.lasselaursen.com <http://www.lasselaursen.com>
FB: lasse.laursen <https://www.facebook.com/lasse.laursen>
Twitter: @PMP_J <https://twitter.com/PMP_J>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140728/a5f11ade/attachment.html>


More information about the gstreamer-devel mailing list