Skip to content

gaborpapp/cinder-GStreamer-Integration

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

cinder GStreamer Integration

This is a first attempt at getting the GStreamer open source multimedia framework working and integrated with cinder.

GstGLVideoPlayer

This approach takes this general workflow into account:

  • Use the playbin2 plugin as our base pipeline for all-encompassing media playback.
  • Create a special bin that uses the glupload plugin for taking frame buffers and mapping them to textures in a shared GL context.
  • Use the appsink plugin for handling querying of the pipeline and event callbacks.

General Notes

  • This has only been tested and implemented in Windows 7 64-bit Professional.
  • It makes use of the directsoundsink audio sink for the audio portion of the video file. This would need to change if you wanted to try to get this working on a Mac.
  • The GstGLVideoPlayer attempts to read files as assets from your hard drive. So when you create your Cinder project, make sure you create an assets folder and stick your movie file in there.

Installation on Windows

The easiest way to get the GStreamer libraries and SDK on your Windows machine is to install them via the OSSBuild environment. You can find that here:

OSSBuild

I have only tried this with the x86 Beta04 0.10.7 build thus far.

You’ll want to grab the .MSI for both the “regular” library install (GStreamer-WinBuilds-…) and the SDK (Gstreamer-WinBuilds-SDK-…). Once you’ve installed those, you’ll have two new system environment variables called:

  • $(OSSBUILD_GSTREAMER_DIR)
  • $(OSSBUILD_GSTREAMER_SDK_DIR)

These are important becuase you’ll need to reference them when trying to add your additional include folders and your linker settings in Visual Studio C++ 2010.

Compiling in Visual Studio C++ 2010

You should be familiar with these steps if you’ve ever had to add additional libraries to your project.

  1. Open your project’s Property Pages dialogue (right-click on the project from the Solution Explorer and click Properties).
  2. In the Configuration Properties sidebar menu, find C/C++ > General. There’s an Additional Inlcude Directories value in there. You’ll need to add a BUNCH of new folders.
    • First you’ll need $(OSSBUILD_GSTREAMER_SDK_DIR)\include
    • Then you’ll need to add every subfolder that in that include folder. Super pain in the ass, but you need to do it.
  3. Next go to the Configruation Properties > Linker > General pane. Find Additional Library Directories.
  4. In this field you just need to add: $(OSSBUILD_GSTREAMER_SDK_DIR)\lib
  5. Lastly go to the Configruation Properties > Linker > Input pane. Find Additional Dependencies. Here you’ll add each of the .lib files that exist in the OSSBuild Gstreamer SDK’s lib folder. That folder is usually installed here: C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7\sdk\lib.

That’s everything you should need to add to your Cinder project.

About

An attempt at integrating Gstreamer into cinder as a video playback option.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published