Re: Are there Perl bindings for gstreamer-1.0?



I knew nothing about GStreamer a couple hours ago, but, since I have had a lot of dealings with perl/introspection of late, I went ahead and did some digging. Compiled with gstreamer-1.2.4.

So, first off, instead of: my $play = GStreamer::ElementFactory -> make("playbin", "play");
It should be: my $play = GStreamer::ElementFactory::make("playbin", "play");

Due to the class-static stuff.

I was, however, running into the same issue. I first verified that this works:

my $fake_factory = Glib::Object::Introspection->invoke ('Gst', 'ElementFactory', 'find', 'fakesrc');
my $fake_element = GStreamer::ElementFactory::create($fake_factory,"source");

After attempting a find on playbin, it would seem that the plugin simply isn't installed as the fakesrc is working. Looking at: plugins/elements/, I only see a handful of source files; playbin not being one of them.

That's when I remembered seeing a number of plugin subdirectories in http://gstreamer.freedesktop.org/src/.

It looks like gst-plugins-base provides playbin. After installing, now the aforementioned playbin call returns correctly.


Terence J. Ferraro


On Sat, Apr 26, 2014 at 6:13 PM, Steve Cookson <it sca-uk com> wrote:
Hi Guys,


On 26/04/14 09:30, Steve Cookson wrote:
>
> > I'd suggest basing them on Glib::Object::Introspection.

Well actually, it's amazing.  I've just been trying it.

It's not so easy to install you have to install libgirepository1.0-dev first (apt-get install libgirepository1.0-dev).

This code:

#!/usr/bin/perl -w
    use strict;

    use Glib::Object::Introspection;
    Glib::Object::Introspection->setup (basename => 'Gst', version => '1.0', package => 'GStreamer');
    my @version=();
    @version = GStreamer::version();
    print "This program is linked against GStreamer @version\n";
    my $i = GStreamer::init ([$0, @ARGV]);

Gave me "This program is linked against GStreamer 1 2 3 0".

However, when I tried:

    my $play = GStreamer::ElementFactory -> make("playbin", "play");

I get:

*** GStreamer::ElementFactory::make: passed too many parameters (expected 2, got 3); ignoring excess at ~/test_code/GStreamer_test_4.pl line 129.

When I drop the final parameter, I get an empty string passed in $play.

Any ideas?

Regards

Steve.


_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-perl-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]