Add GStreamer support

svn path=/trunk/gtk-sharp/; revision=8727
This commit is contained in:
Alp Toker 2002-11-01 05:10:00 +00:00
parent e06e2ba8dd
commit fc9daa9420
3 changed files with 101 additions and 0 deletions

35
gst/Application.cs Executable file
View File

@ -0,0 +1,35 @@
//
// Application.cs - Gst initialization
//
// Author: Alp Toker <alp@atoker.com>
//
// 2002 (C) Copyright, Alp Toker
//
namespace Gst {
using System;
using System.Runtime.InteropServices;
public class Application {
[DllImport("gstreamer-0.4.1")]
static extern void gst_init (int argc, IntPtr argv);
public static void Init ()
{
gst_init (0, new IntPtr(0));
}
[DllImport("gstreamer-0.4.1")]
static extern void gst_init (ref int argc, ref String[] argv);
public static void Init (ref string[] args)
{
int argc = args.Length;
gst_init (ref argc, ref args);
}
}
}

20
gst/Makefile.in Executable file
View File

@ -0,0 +1,20 @@
MCS=mcs
DESTDIR=
all: linux
windows:
$(CSC) /unsafe /target:library /r:../glib/glib-sharp.dll /out:gst-sharp.dll /recurse:*.cs
linux: gst-sharp.dll
gst-sharp.dll: *.cs
$(MCS) --unsafe --target library -r glib-sharp.dll -o gst-sharp.dll --recurse '*.cs'
clean:
rm -f *.dll
rm -rf generated
install: all
cp gst-sharp.dll $(DESTDIR)@prefix@/lib || exit 1

46
sample/GstPlayer.cs Normal file
View File

@ -0,0 +1,46 @@
// GstPlayer.cs - a simple Vorbis media player using GStreamer
//
// Author: Alp Toker <alp@atoker.com>
//
// Copyright (c) 2002 Alp Toker
using System;
using Gst;
public class GstTest
{
static void Main(string[] args)
{
Application.Init ();
/* create a new bin to hold the elements */
Pipeline bin = new Pipeline("pipeline");
/* create a disk reader */
Element filesrc = ElementFactory.Make ("filesrc", "disk_source");
filesrc.SetProperty ("location", new GLib.Value (args[0]));
/* now it's time to get the decoder */
Element decoder = ElementFactory.Make ("vorbisdec", "decode");
/* and an audio sink */
Element osssink = ElementFactory.Make ("osssink", "play_audio");
/* add objects to the main pipeline */
bin.Add (filesrc);
bin.Add (decoder);
bin.Add (osssink);
/* connect the elements */
filesrc.Connect (decoder);
decoder.Connect (osssink);
/* start playing */
bin.SetState (ElementState.Playing);
while (bin.Iterate ());
/* stop the bin */
bin.SetState (ElementState.Null);
}
}