r31066 - in /branches/upstream/libgstreamer-perl/current: ChangeLog GStreamer.pm MANIFEST META.yml Makefile.PL NEWS lib/ lib/GStreamer.pm t/GstClock.t t/GstIndex.t t/GstPad.t xs/GstFormat.xs xs/GstIndex.xs xs/GstIterator.xs xs/GstPad.xs

antonio-guest at users.alioth.debian.org antonio-guest at users.alioth.debian.org
Mon Feb 23 20:58:23 UTC 2009


Author: antonio-guest
Date: Mon Feb 23 20:58:20 2009
New Revision: 31066

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=31066
Log:
[svn-upgrade] Integrating new upstream version, libgstreamer-perl (0.15)

Added:
    branches/upstream/libgstreamer-perl/current/lib/
    branches/upstream/libgstreamer-perl/current/lib/GStreamer.pm
Removed:
    branches/upstream/libgstreamer-perl/current/GStreamer.pm
Modified:
    branches/upstream/libgstreamer-perl/current/ChangeLog
    branches/upstream/libgstreamer-perl/current/MANIFEST
    branches/upstream/libgstreamer-perl/current/META.yml
    branches/upstream/libgstreamer-perl/current/Makefile.PL
    branches/upstream/libgstreamer-perl/current/NEWS
    branches/upstream/libgstreamer-perl/current/t/GstClock.t
    branches/upstream/libgstreamer-perl/current/t/GstIndex.t
    branches/upstream/libgstreamer-perl/current/t/GstPad.t
    branches/upstream/libgstreamer-perl/current/xs/GstFormat.xs
    branches/upstream/libgstreamer-perl/current/xs/GstIndex.xs
    branches/upstream/libgstreamer-perl/current/xs/GstIterator.xs
    branches/upstream/libgstreamer-perl/current/xs/GstPad.xs

Modified: branches/upstream/libgstreamer-perl/current/ChangeLog
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/ChangeLog?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/ChangeLog (original)
+++ branches/upstream/libgstreamer-perl/current/ChangeLog Mon Feb 23 20:58:20 2009
@@ -1,3 +1,50 @@
+2009-02-22  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* lib/GStreamer.pm
+	* NEWS: Release 0.15.
+
+2009-02-22  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* Makefile.PL
+	* MANIFEST
+	* GStreamer.pm (removed)
+	* lib/GStreamer.pm (added): Move GStreamer.pm into the new lib
+	directory.
+
+2009-02-22  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* t/GstPad.t
+	* xs/GstPad.xs: Wrap gst_pad_is_blocking, gst_pad_peer_query,
+	gst_pad_iterate_internal_links, and
+	gst_pad_iterate_internal_links_default.
+
+2009-02-22  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* xs/GstIterator.xs (newSVGstIterator): Convert NULL iterators to
+	undef.
+
+2009-02-21  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* xs/GstFormat.xs (SvGstFormat): Throw an exception if
+	gst_format_get_by_nick failed to convert the string to a format.
+	This means that unregistered format strings now cause errors
+	instead of being silently turned into GST_FORMAT_UNDEFINED.
+
+2009-02-21  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* t/GstClock.t: Make the clock resolution and master clock tests
+	more robust.
+
+2009-02-21  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* t/GstIndex.t: Make the GstIndexEntry tests more robust and correct.
+
+2009-02-21  Torsten Schoenfeld  <kaffeetisch at gmx.de>
+
+	* xs/GstIndex.xs: We don't own the GstIndexEntry objects returned
+	by the various GstIndex methods, so don't use the _own typemap
+	variant.
+
 2009-01-18  Torsten Schoenfeld  <kaffeetisch at gmx.de>
 
 	* GStreamer.pm

Modified: branches/upstream/libgstreamer-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/MANIFEST?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/MANIFEST (original)
+++ branches/upstream/libgstreamer-perl/current/MANIFEST Mon Feb 23 20:58:20 2009
@@ -24,7 +24,7 @@
 examples/tagger.pl
 gst.typemap
 gst2perl.h
-GStreamer.pm
+lib/GStreamer.pm
 LICENSE
 MAINTAINERS
 Makefile.PL

Modified: branches/upstream/libgstreamer-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/META.yml?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/META.yml (original)
+++ branches/upstream/libgstreamer-perl/current/META.yml Mon Feb 23 20:58:20 2009
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               GStreamer
-version:            0.14
+version:            0.15
 abstract:           Perl interface to the GStreamer library
 author:  []
 license:            unknown

Modified: branches/upstream/libgstreamer-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/Makefile.PL?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/Makefile.PL (original)
+++ branches/upstream/libgstreamer-perl/current/Makefile.PL Mon Feb 23 20:58:20 2009
@@ -6,7 +6,7 @@
 use ExtUtils::MakeMaker;
 use Cwd qw(cwd);
 
-# $Id: Makefile.PL 97 2008-12-16 19:19:00Z tsch $
+# $Id: Makefile.PL 113 2009-02-22 12:13:36Z tsch $
 
 our %build_reqs = (
   'perl-ExtUtils-Depends'   => '0.205',
@@ -50,7 +50,7 @@
 
 our @xs_files = <xs/*.xs>;
 our %pod_files = (
-	'GStreamer.pm' => '$(INST_MAN3DIR)/GStreamer.$(MAN3EXT)',
+	'lib/GStreamer.pm' => '$(INST_MAN3DIR)/GStreamer.$(MAN3EXT)',
 	Glib::MakeHelper->do_pod_files (@xs_files),
 );
 
@@ -131,7 +131,7 @@
 $gst->set_inc($pkgcfg{cflags} . ' -I./build ');
 $gst->set_libs($pkgcfg{libs});
 $gst->add_xs(@xs_files);
-$gst->add_pm('GStreamer.pm' => '$(INST_LIBDIR)/GStreamer.pm');
+$gst->add_pm('lib/GStreamer.pm' => '$(INST_LIBDIR)/GStreamer.pm');
 $gst->add_typemaps(map {File::Spec->catfile(cwd(), $_)}
                        ('gst.typemap', 'build/gst2perl.typemap'));
 
@@ -143,8 +143,8 @@
 
 WriteMakefile(
   NAME          => 'GStreamer',
-  VERSION_FROM  => 'GStreamer.pm',
-  ABSTRACT_FROM => 'GStreamer.pm',
+  VERSION_FROM  => 'lib/GStreamer.pm',
+  ABSTRACT_FROM => 'lib/GStreamer.pm',
   PREREQ_PM     => \%pre_reqs,
   XSPROTOARG    => '-noprototypes',
   MAN3PODS      => \%pod_files,

Modified: branches/upstream/libgstreamer-perl/current/NEWS
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/NEWS?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/NEWS (original)
+++ branches/upstream/libgstreamer-perl/current/NEWS Mon Feb 23 20:58:20 2009
@@ -1,3 +1,14 @@
+Overview of changes in GStreamer 0.15
+=====================================
+
+* Wrap gst_pad_is_blocking, gst_pad_peer_query, gst_pad_iterate_internal_links,
+  and gst_pad_iterate_internal_links_default.
+* Don't assume ownership of GstIndexEntry objects returned by the various
+  GstIndex methods.
+* Throw an exception if unknown GstFormat values are encountered.
+* Convert NULL GstIterator objects to undef.
+* Fix a few test failures.
+
 Overview of changes in GStreamer 0.14
 =====================================
 

Added: branches/upstream/libgstreamer-perl/current/lib/GStreamer.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/lib/GStreamer.pm?rev=31066&op=file
==============================================================================
--- branches/upstream/libgstreamer-perl/current/lib/GStreamer.pm (added)
+++ branches/upstream/libgstreamer-perl/current/lib/GStreamer.pm Mon Feb 23 20:58:20 2009
@@ -1,0 +1,306 @@
+package GStreamer;
+
+# $Id: GStreamer.pm 114 2009-02-22 12:16:58Z tsch $
+
+use 5.008;
+use strict;
+use warnings;
+
+use Glib;
+
+require Exporter;
+require DynaLoader;
+
+our @ISA = qw(Exporter DynaLoader);
+
+our @EXPORT_OK = qw(
+  GST_SECOND
+  GST_MSECOND
+  GST_USECOND
+  GST_NSECOND
+  GST_TIME_FORMAT
+  GST_TIME_ARGS
+  GST_RANK_NONE
+  GST_RANK_MARGINAL
+  GST_RANK_SECONDARY
+  GST_RANK_PRIMARY
+);
+
+# --------------------------------------------------------------------------- #
+
+our $VERSION = '0.15';
+
+sub import {
+  my ($self) = @_;
+  my @symbols = ();
+
+  foreach (@_) {
+    if (/^-?init$/) {
+      $self -> init();
+    } else {
+      push @symbols, $_;
+    }
+  }
+
+  GStreamer -> export_to_level(1, @symbols);
+}
+
+sub dl_load_flags { $^O eq 'darwin' ? 0x00 : 0x01 }
+
+GStreamer -> bootstrap($VERSION);
+
+# --------------------------------------------------------------------------- #
+
+use constant GST_SECOND => 1_000_000 * 1_000;
+use constant GST_MSECOND => GST_SECOND / 1_000;
+use constant GST_USECOND => GST_SECOND / 1_000_000;
+use constant GST_NSECOND => GST_SECOND / 1_000_000_000;
+
+use constant GST_TIME_FORMAT => "u:%02u:%02u.%09u";
+
+sub GST_TIME_ARGS {
+  my ($t) = @_;
+
+  return (
+    ($t / (GST_SECOND * 60 * 60)),
+    ($t / (GST_SECOND * 60)) % 60,
+    ($t / GST_SECOND) % 60,
+    ($t % GST_SECOND)
+  );
+}
+
+use constant GST_RANK_NONE => 0;
+use constant GST_RANK_MARGINAL => 64;
+use constant GST_RANK_SECONDARY => 128;
+use constant GST_RANK_PRIMARY => 256;
+
+# --------------------------------------------------------------------------- #
+
+package GStreamer::Caps;
+
+use overload
+  '+' => \&__append,
+  '-' => \&__subtract,
+  '&' => \&__intersect,
+  '|' => \&__union,
+  '<=' => \&__is_subset,
+  '>=' => \&__is_superset,
+  '==' => \&__is_equal,
+  '""' => \&__to_string,
+  fallback => 1;
+
+sub __append {
+  my ($a, $b, $swap) = @_;
+  my $tmp = GStreamer::Caps::Empty -> new();
+
+  unless ($swap) {
+    $tmp -> append($a);
+    $tmp -> append($b);
+  } else {
+    $tmp -> append($b);
+    $tmp -> append($a);
+  }
+
+  return $tmp;
+}
+
+sub __subtract {
+  my ($a, $b, $swap) = @_;
+
+  return $swap ?
+    $b -> subtract($a) :
+    $a -> subtract($b);
+}
+
+sub __intersect {
+  my ($a, $b, $swap) = @_;
+
+  return $swap ?
+    $b -> intersect($a) :
+    $a -> intersect($b);
+}
+
+sub __union {
+  my ($a, $b, $swap) = @_;
+
+  return $swap ?
+    $b -> union($a) :
+    $a -> union($b);
+}
+
+sub __is_subset {
+  my ($a, $b, $swap) = @_;
+
+  return $swap ?
+    $b -> is_subset($a) :
+    $a -> is_subset($b);
+}
+
+sub __is_superset {
+  my ($a, $b, $swap) = @_;
+
+  return $swap ?
+    $a -> is_subset($b) :
+    $b -> is_subset($a);
+}
+
+sub __is_equal {
+  my ($a, $b, $swap) = @_;
+
+  return $swap ?
+    $b -> is_equal($a) :
+    $a -> is_equal($b);
+}
+
+sub __to_string {
+  my ($a) = @_;
+
+  return $a -> to_string();
+}
+
+# --------------------------------------------------------------------------- #
+
+package GStreamer;
+
+1;
+
+__END__
+
+=head1 NAME
+
+GStreamer - Perl interface to the GStreamer library
+
+=head1 SYNOPSIS
+
+  use GStreamer -init;
+
+  my $loop = Glib::MainLoop -> new();
+
+  # set up
+  my $play = GStreamer::ElementFactory -> make("playbin", "play");
+  $play -> set(uri => Glib::filename_to_uri $file, "localhost");
+  $play -> get_bus() -> add_watch(\&my_bus_callback, $loop);
+  $play -> set_state("playing");
+
+  # run
+  $loop -> run();
+
+  # clean up
+  $play -> set_state("null");
+
+  sub my_bus_callback {
+    my ($bus, $message, $loop) = @_;
+
+    if ($message -> type & "error") {
+      warn $message -> error;
+      $loop -> quit();
+    }
+
+    elsif ($message -> type & "eos") {
+      $loop -> quit();
+    }
+
+    # remove message from the queue
+    return TRUE;
+  }
+
+=head1 ABSTRACT
+
+GStreamer makes everybody dance like crazy.  It provides the means to play,
+stream, and convert nearly any type of media -- be it audio or video.
+GStreamer wraps the GStreamer library in a nice and Perlish way, freeing the
+programmer from any memory management and object casting hassles.
+
+=head1 INITIALIZATION
+
+=over
+
+=item B<GStreamer-E<gt>init>
+
+Initializes GStreamer.  Automatically parses I<@ARGV>, stripping any options
+known to GStreamer.
+
+=item B<boolean = GStreamer-E<gt>init_check>
+
+Checks if initialization is possible.  Returns TRUE if so.
+
+=back
+
+When importing GStreamer, you can pass the C<-init> option to have
+I<GStreamer-E<gt>init> automatically called for you.  If you need to know if
+initialization is possible without actually doing it, use
+I<GStreamer-E<gt>init_check>.
+
+=head1 VERSION CHECKING
+
+=over
+
+=item B<boolean = GStreamer-E<gt>CHECK_VERSION (major, minor, micro)>
+
+=over
+
+=item * major (integer)
+
+=item * minor (integer)
+
+=item * micro (integer)
+
+=back
+
+Returns TRUE if the GStreamer library version GStreamer was compiled against is
+newer than the one specified by the three arguments.
+
+=item B<(major, minor, micro) = GStreamer-E<gt>GET_VERSION_INFO>
+
+Returns the version information of the GStreamer library GStreamer was compiled
+against.
+
+=item B<(major, minor, micro) = GStreamer-E<gt>version>
+
+Returns the version information of the GStreamer library GStreamer is currently
+running against.
+
+=back
+
+=head1 SEE ALSO
+
+=over
+
+=item L<GStreamer::index>
+
+Lists the automatically generated API documentation pages.
+
+=item L<http://gstreamer.freedesktop.org/>
+
+GStreamer's website has much useful information, including a good tutorial and
+of course the API reference, which is canonical for GStreamer as well.
+
+=item L<Gtk2::api>
+
+Just like Gtk2, GStreamer tries to stick closely to the C API, deviating from
+it only when it makes things easier and/or more Perlish.  L<Gtk2::api> gives
+general rules for how to map from the C API to Perl, most of which also apply
+to GStreamer.
+
+=item L<Glib>
+
+Glib is the foundation this binding is built upon.  If you look for information
+on basic stuff like signals or object properties, this is what you should read.
+
+=back
+
+=head1 AUTHORS
+
+=over
+
+=item Torsten Schoenfeld E<lt>kaffeetisch at gmx dot deE<gt>
+
+=item Brett Kosinski E<lt>brettk at frodo.dyn.gno dot orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (C) 2005-2008 by the gtk2-perl team
+
+=cut

Modified: branches/upstream/libgstreamer-perl/current/t/GstClock.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/t/GstClock.t?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/t/GstClock.t (original)
+++ branches/upstream/libgstreamer-perl/current/t/GstClock.t Mon Feb 23 20:58:20 2009
@@ -3,7 +3,7 @@
 use warnings;
 use Test::More tests => 20;
 
-# $Id: GstClock.t 103 2009-01-18 12:53:21Z tsch $
+# $Id: GstClock.t 108 2009-02-21 15:39:26Z tsch $
 
 use Glib qw(TRUE FALSE);
 use GStreamer qw(-init GST_SECOND);
@@ -19,8 +19,8 @@
   skip 'failed to find a clock', 20
     unless defined $clock;
 
-  is($clock -> set_resolution(1000), 0);
-  is($clock -> get_resolution(), 1000);
+  ok(defined $clock -> set_resolution(1000));
+  ok(defined $clock -> get_resolution());
 
   ok($clock -> get_time() >= 0);
 
@@ -28,14 +28,18 @@
   is_deeply([$clock -> get_calibration()], [0, 2, 3, 4]);
 
   SKIP: {
-    skip "master clock tests", 2
-      unless undef; # FIXME
+    my $master_element = GStreamer::ElementFactory -> make("alsamixer", "sink");
 
-    my $master_element = GStreamer::ElementFactory -> make("alsamixer", "sink");
-    my $master = $element -> provide_clock();
+    skip "master clock tests: couldn't find master element", 2
+      unless defined $master_element;
 
-    ok($clock -> set_master($master));
-    is($clock -> get_master(), $master);
+    my $master_clock = $master_element -> provide_clock();
+
+    skip "master clock tests: couldn't find master clock", 2
+      unless defined $master_clock;
+
+    ok($clock -> set_master($master_clock));
+    is($clock -> get_master(), $master_clock);
   }
 
   my ($result, $r) = $clock -> add_observation(23, 42);

Modified: branches/upstream/libgstreamer-perl/current/t/GstIndex.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/t/GstIndex.t?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/t/GstIndex.t (original)
+++ branches/upstream/libgstreamer-perl/current/t/GstIndex.t Mon Feb 23 20:58:20 2009
@@ -3,7 +3,7 @@
 use warnings;
 use Test::More tests => 15;
 
-# $Id: GstIndex.t 75 2008-03-23 16:49:31Z tsch $
+# $Id: GstIndex.t 107 2009-02-21 15:38:37Z tsch $
 
 use GStreamer -init;
 
@@ -23,9 +23,10 @@
 
 my $object = GStreamer::ElementFactory -> make("alsasink", "sink");
 SKIP: {
-  skip 'failed to create an alsasink', 5
+  skip 'index entry tests: failed to create an alsasink', 10
     unless defined $object;
 
+  # Called by get_writer_id()
   $index -> set_resolver(sub {
     my ($index, $element, $data) = @_;
 
@@ -37,22 +38,29 @@
   }, "blub");
 
   my $id = $index -> get_writer_id($object);
-  is($id, 1);
+  skip 'index entry tests: failed to obtain a writer id', 7
+    unless defined $id;
 
-  # Seems to be unimplemented.
-  my $entry = $index -> add_object(25, "urgs", $object);
-  is($entry, undef);
+  my $entry = $index -> add_format($id, "bytes");
+  isa_ok($entry, "GStreamer::IndexEntry");
+
+  $entry = $index -> add_association($id, "key-unit", bytes => 12, time => 13);
+  isa_ok($entry, "GStreamer::IndexEntry");
+  is($entry -> assoc_map("bytes"), 12);
+  is($entry -> assoc_map("time"), 13);
+
+  $entry = $index -> add_object($id, "urgs", $object);
+  TODO: {
+    local $TODO = 'add_object always returns undef';
+    isa_ok($entry, "GStreamer::IndexEntry");
+  }
+
+  $entry = $index -> add_id($id, "sgru");
+  isa_ok($entry, "GStreamer::IndexEntry");
+
+  $entry = $index -> get_assoc_entry($id, "exact", "key-unit", bytes => 12);
+  TODO: {
+    local $TODO = 'get_assoc_entry always returns undef';
+    isa_ok($entry, "GStreamer::IndexEntry");
+  }
 }
-
-my $entry = $index -> add_format(23, "bytes");
-isa_ok($entry, "GStreamer::IndexEntry");
-
-$entry = $index -> add_association(24, "key-unit", bytes => 12, bytes => 13);
-isa_ok($entry, "GStreamer::IndexEntry");
-is($entry -> assoc_map("bytes"), 12);
-
-$entry = $index -> add_id(26, "sgru");
-isa_ok($entry, "GStreamer::IndexEntry");
-
-$entry = $index -> get_assoc_entry(24, "exact", "key-unit", bytes => 12);
-is($entry, undef);

Modified: branches/upstream/libgstreamer-perl/current/t/GstPad.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/t/GstPad.t?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/t/GstPad.t (original)
+++ branches/upstream/libgstreamer-perl/current/t/GstPad.t Mon Feb 23 20:58:20 2009
@@ -1,9 +1,9 @@
 #!/usr/bin/perl
 use strict;
 use warnings;
-use Test::More tests => 39;
+use Test::More tests => 43;
 
-# $Id: GstPad.t 78 2008-05-04 12:16:00Z tsch $
+# $Id: GstPad.t 111 2009-02-22 12:02:46Z tsch $
 
 use Glib qw(TRUE FALSE);
 use GStreamer -init;
@@ -101,3 +101,25 @@
 my $query = GStreamer::Query::Position -> new("time");
 ok(!$pad -> query($query));
 ok(!$pad -> query_default($query));
+
+SKIP: {
+  skip 'new 0.10.11 stuff', 1
+    unless GStreamer->CHECK_VERSION(0, 10, 11);
+
+  ok(defined $pad -> is_blocking());
+}
+
+SKIP: {
+  skip 'new 0.10.15 stuff', 1
+    unless GStreamer->CHECK_VERSION(0, 10, 15);
+
+  ok(defined $pad -> peer_query($query));
+}
+
+SKIP: {
+  skip 'new 0.10.21 stuff', 2
+    unless GStreamer->CHECK_VERSION(0, 10, 21);
+
+  is($pad -> iterate_internal_links(), undef);
+  is($pad -> iterate_internal_links_default(), undef);
+}

Modified: branches/upstream/libgstreamer-perl/current/xs/GstFormat.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/xs/GstFormat.xs?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/xs/GstFormat.xs (original)
+++ branches/upstream/libgstreamer-perl/current/xs/GstFormat.xs Mon Feb 23 20:58:20 2009
@@ -15,7 +15,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * $Id: GstFormat.xs 29 2005-12-03 00:28:13Z tsch $
+ * $Id: GstFormat.xs 109 2009-02-21 15:41:24Z tsch $
  */
 
 #include "gst2perl.h"
@@ -44,7 +44,12 @@
 	if (gperl_try_convert_enum (GST_TYPE_FORMAT, sv, (gint *) &format))
 		return format;
 
-	return gst_format_get_by_nick (SvPV_nolen (sv));
+	format = gst_format_get_by_nick (SvPV_nolen (sv));
+	if (GST_FORMAT_UNDEFINED == format)
+		croak ("`%s' is not a valid GstFormat value",
+		       gperl_format_variable_for_output (sv));
+
+	return format;
 }
 
 /* ------------------------------------------------------------------------- */

Modified: branches/upstream/libgstreamer-perl/current/xs/GstIndex.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/xs/GstIndex.xs?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/xs/GstIndex.xs (original)
+++ branches/upstream/libgstreamer-perl/current/xs/GstIndex.xs Mon Feb 23 20:58:20 2009
@@ -15,7 +15,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * $Id: GstIndex.xs 88 2008-11-26 21:17:36Z tsch $
+ * $Id: GstIndex.xs 106 2009-02-21 15:37:57Z tsch $
  */
 
 #include "gst2perl.h"
@@ -188,10 +188,10 @@
     OUTPUT:
 	RETVAL
 
-GstIndexEntry_own * gst_index_add_format (GstIndex *index, gint id, GstFormat format);
+GstIndexEntry_ornull * gst_index_add_format (GstIndex *index, gint id, GstFormat format);
 
 # GstIndexEntry * gst_index_add_association (GstIndex *index, gint id, GstAssocFlags flags, GstFormat format, gint64 value, ...);
-GstIndexEntry_own *
+GstIndexEntry_ornull *
 gst_index_add_association (index, id, flags, format, value, ...)
 	GstIndex *index
 	gint id
@@ -226,7 +226,7 @@
 	RETVAL
 
 # GstIndexEntry * gst_index_add_object (GstIndex *index, gint id, gchar *key, GType type, gpointer object);
-GstIndexEntry_own *
+GstIndexEntry_ornull *
 gst_index_add_object (index, id, key, object)
 	GstIndex *index
 	gint id
@@ -242,9 +242,9 @@
     OUTPUT:
 	RETVAL
 
-GstIndexEntry_own * gst_index_add_id (GstIndex *index, gint id, gchar *description);
-
-GstIndexEntry_own * gst_index_get_assoc_entry (GstIndex *index, gint id, GstIndexLookupMethod method, GstAssocFlags flags, GstFormat format, gint64 value);
+GstIndexEntry_ornull * gst_index_add_id (GstIndex *index, gint id, gchar *description);
+
+GstIndexEntry_ornull * gst_index_get_assoc_entry (GstIndex *index, gint id, GstIndexLookupMethod method, GstAssocFlags flags, GstFormat format, gint64 value);
 
 # FIXME?
 # GstIndexEntry * gst_index_get_assoc_entry_full (GstIndex *index, gint id, GstIndexLookupMethod method, GstAssocFlags flags, GstFormat format, gint64 value, GCompareDataFunc func, gpointer user_data);

Modified: branches/upstream/libgstreamer-perl/current/xs/GstIterator.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/xs/GstIterator.xs?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/xs/GstIterator.xs (original)
+++ branches/upstream/libgstreamer-perl/current/xs/GstIterator.xs Mon Feb 23 20:58:20 2009
@@ -15,7 +15,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * $Id: GstIterator.xs 59 2006-12-02 16:37:31Z tsch $
+ * $Id: GstIterator.xs 110 2009-02-22 11:51:46Z tsch $
  */
 
 #include "gst2perl.h"
@@ -28,6 +28,9 @@
 	AV *av, *dummy;
 	SV *tie, *ref;
 	HV *stash;
+
+	if (!iter)
+		return &PL_sv_undef;
 
 	av = newAV ();
 	dummy = newAV ();

Modified: branches/upstream/libgstreamer-perl/current/xs/GstPad.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libgstreamer-perl/current/xs/GstPad.xs?rev=31066&op=diff
==============================================================================
--- branches/upstream/libgstreamer-perl/current/xs/GstPad.xs (original)
+++ branches/upstream/libgstreamer-perl/current/xs/GstPad.xs Mon Feb 23 20:58:20 2009
@@ -15,7 +15,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * $Id: GstPad.xs 74 2008-03-23 16:49:05Z tsch $
+ * $Id: GstPad.xs 111 2009-02-22 12:02:46Z tsch $
  */
 
 #include "gst2perl.h"
@@ -241,3 +241,23 @@
 
 # FIXME?
 # gboolean gst_pad_dispatcher (GstPad *pad, GstPadDispatcherFunction dispatch, gpointer data);
+
+#if GST_CHECK_VERSION (0, 10, 11)
+
+gboolean gst_pad_is_blocking (GstPad *pad);
+
+#endif
+
+#if GST_CHECK_VERSION (0, 10, 15)
+
+gboolean gst_pad_peer_query (GstPad *pad, GstQuery *query);
+
+#endif
+
+#if GST_CHECK_VERSION (0, 10, 21)
+
+GstIterator * gst_pad_iterate_internal_links (GstPad *pad);
+
+GstIterator * gst_pad_iterate_internal_links_default (GstPad *pad);
+
+#endif




More information about the Pkg-perl-cvs-commits mailing list