[libgstreamer1-perl] 01/03: Import original source of GStreamer1 0.003
Mike Gabriel
sunweaver at debian.org
Wed Jun 28 09:21:22 UTC 2017
This is an automated email from the git hooks/post-receive script.
sunweaver pushed a commit to branch master
in repository libgstreamer1-perl.
commit d57c52b330a36d251a50f4ced4418f73e049a138
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Fri Apr 21 13:41:58 2017 +0000
Import original source of GStreamer1 0.003
---
CHANGELOG | 16 ++++
MANIFEST | 14 ++++
META.json | 45 +++++++++++
Makefile.PL | 60 ++++++++++++++
dist.ini | 32 ++++++++
examples/hello.pl | 24 ++++++
examples/rpi_pic.pl | 80 ++++++++++++++++++
examples/symdump.pl | 10 +++
lib/GStreamer1.pm | 184 ++++++++++++++++++++++++++++++++++++++++++
lib/GStreamer1/Caps/Simple.pm | 52 ++++++++++++
t/001_load.t | 27 +++++++
t/002_pod.t | 2 +
t/010_caps_simple.t | 38 +++++++++
13 files changed, 584 insertions(+)
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000..d4c9749
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,16 @@
+Revision history for perl module CHANGELOG
+
+0.003 2014-11-27
+
+- Specify libgstreamer >= 1.0.0 as a requirement
+- Add repository URL
+- Build META.json
+
+0.002 2014-11-22
+
+- Don't include sintel trailer in dist
+- Cleanup POD typos
+
+0.001 2014-11-21
+
+- Initial release
diff --git a/MANIFEST b/MANIFEST
new file mode 100644
index 0000000..f78ff70
--- /dev/null
+++ b/MANIFEST
@@ -0,0 +1,14 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.019.
+CHANGELOG
+MANIFEST
+META.json
+Makefile.PL
+dist.ini
+examples/hello.pl
+examples/rpi_pic.pl
+examples/symdump.pl
+lib/GStreamer1.pm
+lib/GStreamer1/Caps/Simple.pm
+t/001_load.t
+t/002_pod.t
+t/010_caps_simple.t
diff --git a/META.json b/META.json
new file mode 100644
index 0000000..3ae27de
--- /dev/null
+++ b/META.json
@@ -0,0 +1,45 @@
+{
+ "abstract" : "Bindings for GStreamer 1.0, the open source multimedia framework",
+ "author" : [
+ "Timm Murray <tmurray at wumpus-cave.net>"
+ ],
+ "dynamic_config" : 0,
+ "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.140640",
+ "license" : [
+ "bsd"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "GStreamer1",
+ "prereqs" : {
+ "configure" : {
+ "requires" : {
+ "Devel::CheckLib" : "0.9",
+ "ExtUtils::MakeMaker" : "6.30"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "Glib::Object::Introspection" : "0.009"
+ }
+ },
+ "test" : {
+ "requires" : {
+ "Test::Pod" : "0"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "homepage" : "http://www.wumpus-cave.net",
+ "repository" : {
+ "type" : "git",
+ "url" : "https://github.com/frezik/GStreamer1.git",
+ "web" : "https://github.com/frezik/GStreamer1"
+ }
+ },
+ "version" : "0.003"
+}
+
diff --git a/Makefile.PL b/Makefile.PL
new file mode 100644
index 0000000..1f1694a
--- /dev/null
+++ b/Makefile.PL
@@ -0,0 +1,60 @@
+
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.019.
+use strict;
+use warnings;
+
+# inserted by Dist::Zilla::Plugin::CheckLib 0.006
+use Devel::CheckLib;
+check_lib_or_exit(
+ lib => 'gstreamer-1.0',
+);
+
+
+
+use ExtUtils::MakeMaker 6.30;
+
+
+
+my %WriteMakefileArgs = (
+ "ABSTRACT" => "Bindings for GStreamer 1.0, the open source multimedia framework",
+ "AUTHOR" => "Timm Murray <tmurray\@wumpus-cave.net>",
+ "CONFIGURE_REQUIRES" => {
+ "Devel::CheckLib" => "0.9",
+ "ExtUtils::MakeMaker" => "6.30"
+ },
+ "DISTNAME" => "GStreamer1",
+ "EXE_FILES" => [],
+ "LICENSE" => "bsd",
+ "NAME" => "GStreamer1",
+ "PREREQ_PM" => {
+ "Glib::Object::Introspection" => "0.009"
+ },
+ "TEST_REQUIRES" => {
+ "Test::Pod" => 0
+ },
+ "VERSION" => "0.003",
+ "test" => {
+ "TESTS" => "t/*.t"
+ }
+);
+
+
+my %FallbackPrereqs = (
+ "Glib::Object::Introspection" => "0.009",
+ "Test::Pod" => 0
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
+}
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+ unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+
+
diff --git a/dist.ini b/dist.ini
new file mode 100644
index 0000000..1641ebf
--- /dev/null
+++ b/dist.ini
@@ -0,0 +1,32 @@
+name = GStreamer1
+author = Timm Murray <tmurray at wumpus-cave.net>
+license = BSD
+copyright_holder = Timm Murray
+
+version = 0.003
+[PkgVersion]
+
+[GatherDir]
+[Manifest]
+[MakeMaker]
+
+[CheckLib]
+lib = gstreamer-1.0
+
+[Prereqs]
+Glib::Object::Introspection = 0.009
+
+[Prereqs / TestRequires]
+Test::Pod = 0
+
+[MetaResources]
+homepage = http://www.wumpus-cave.net
+repository.web = https://github.com/frezik/GStreamer1
+repository.url = https://github.com/frezik/GStreamer1.git
+repository.type = git
+
+[MetaJSON]
+
+[TestRelease]
+[ConfirmRelease]
+[UploadToCPAN]
diff --git a/examples/hello.pl b/examples/hello.pl
new file mode 100644
index 0000000..1482343
--- /dev/null
+++ b/examples/hello.pl
@@ -0,0 +1,24 @@
+#!perl
+use v5.12;
+use warnings;
+use GStreamer1;
+
+# This is based on the GStreamer Hello, World! tutorial at:
+#
+# http://docs.gstreamer.com/pages/viewpage.action?pageId=327735
+#
+# You can download 'sintel_trailer-480p.webm' from there
+#
+
+my $URI = shift || die "Need URI to play\n";
+
+GStreamer1::init([ $0, @ARGV ]);
+my $pipeline = GStreamer1::parse_launch( "playbin uri=$URI" );
+
+$pipeline->set_state( "playing" );
+
+my $bus = $pipeline->get_bus;
+my $msg = $bus->timed_pop_filtered( GStreamer1::CLOCK_TIME_NONE,
+ [ 'error', 'eos' ]);
+
+$pipeline->set_state( "null" );
diff --git a/examples/rpi_pic.pl b/examples/rpi_pic.pl
new file mode 100644
index 0000000..31f7c26
--- /dev/null
+++ b/examples/rpi_pic.pl
@@ -0,0 +1,80 @@
+#!/usr/bin/perl
+use v5.12;
+use warnings;
+use GStreamer1;
+use Glib qw( TRUE FALSE );
+
+# Get a jpeg image from the Raspberry Pi camera. This requires the rpicamsrc
+# gst plugin, which you can download and compile from:
+#
+# https://github.com/thaytan/gst-rpicamsrc
+#
+# Duplicates this command line:
+#
+# gst-launch-1.0 rpicamsrc ! h264parse ! 'video/x-h264,width=800,height=600' \
+# ! avdec_h264 ! jpegenc quality=50 ! filesink location=output.jpg
+#
+# Except that we use an appsink to get the jpeg and then save it.
+#
+
+my $OUT_FILE = shift || die "Need file to save to\n";
+
+
+sub dump_to_file
+{
+ my ($output_file, $jpeg_data) = @_;
+ my @jpeg_bytes = @$jpeg_data;
+ say "Got jpeg, saving " . scalar(@jpeg_bytes) . " bytes . . . ";
+
+ open( my $fh, '>', $output_file ) or die "Can't open '$output_file': $!\n";
+ binmode $fh;
+ print $fh pack( 'C*', @jpeg_bytes );
+ close $fh;
+
+ say "Saved jpeg to $output_file (size: " . (-s $output_file) . ")";
+ return 1;
+}
+
+
+GStreamer1::init([ $0, @ARGV ]);
+my $loop = Glib::MainLoop->new( undef, FALSE );
+my $pipeline = GStreamer1::Pipeline->new( 'pipeline' );
+
+my $rpi = GStreamer1::ElementFactory::make( rpicamsrc => 'and_who' );
+my $h264parse = GStreamer1::ElementFactory::make( h264parse => 'are_you' );
+my $capsfilter = GStreamer1::ElementFactory::make(
+ capsfilter => 'the_proud_lord_said' );
+my $avdec_h264 = GStreamer1::ElementFactory::make(
+ avdec_h264 => 'that_i_should_bow_so_low' );
+my $jpegenc = GStreamer1::ElementFactory::make( jpegenc => 'only_a_cat' );
+my $appsink = GStreamer1::ElementFactory::make(
+ appsink => 'of_a_different_coat' );
+
+my $caps = GStreamer1::Caps::Simple->new( 'video/x-h264',
+ width => 'Glib::Int' => 800,
+ height => 'Glib::Int' => 600,
+);
+$capsfilter->set( caps => $caps );
+
+$appsink->set( 'max-buffers' => 20 );
+$appsink->set( 'emit-signals' => TRUE );
+$appsink->set( 'sync' => FALSE );
+
+
+my @link = ( $rpi, $h264parse, $capsfilter, $avdec_h264, $jpegenc, $appsink );
+$pipeline->add( $_ ) for @link;
+foreach my $i (0 .. $#link) {
+ last if ! exists $link[$i+1];
+ my $this = $link[$i];
+ my $next = $link[$i+1];
+ $this->link( $next );
+}
+
+$pipeline->set_state( "playing" );
+my $jpeg_sample = $appsink->pull_sample;
+$pipeline->set_state( "null" );
+
+my $jpeg_buf = $jpeg_sample->get_buffer;
+my $size = $jpeg_buf->get_size;
+my $buf = $jpeg_buf->extract_dup( 0, $size, undef, $size );
+dump_to_file( $OUT_FILE, $buf );
diff --git a/examples/symdump.pl b/examples/symdump.pl
new file mode 100644
index 0000000..764fb12
--- /dev/null
+++ b/examples/symdump.pl
@@ -0,0 +1,10 @@
+#!perl
+use v5.12;
+use warnings;
+use GStreamer1;
+use Devel::Symdump;
+
+# Dump out everything under the GStreamer1:: namespace recursively
+
+my $dump = Devel::Symdump->rnew( 'GStreamer1' );
+say $_ for sort $dump->functions;
diff --git a/lib/GStreamer1.pm b/lib/GStreamer1.pm
new file mode 100644
index 0000000..a531c66
--- /dev/null
+++ b/lib/GStreamer1.pm
@@ -0,0 +1,184 @@
+# Copyright (c) 2014 Timm Murray
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+package GStreamer1;
+$GStreamer1::VERSION = '0.003';
+use v5.12;
+use warnings;
+use Glib::Object::Introspection;
+
+# ABSTRACT: Bindings for GStreamer 1.0, the open source multimedia framework
+
+BEGIN {
+ foreach my $name ('', (
+ #'Allocators',
+ 'App',
+ #'Audio',
+ 'Base',
+ #'Check',
+ 'Controller',
+ #'Fft',
+ #'InsertBin',
+ #'Mpegts',
+ #'Net',
+ #'Pbutils',
+ #'Riff',
+ #'Rtp',
+ #'Rtsp',
+ #'Sdp',
+ #'Tag',
+ #'Video',
+ )) {
+ my $basename = 'Gst' . $name;
+ my $pkg = $name
+ ? 'GStreamer1::' . $name
+ : 'GStreamer1';
+ Glib::Object::Introspection->setup(
+ basename => $basename,
+ version => '1.0',
+ package => $pkg,
+ );
+ }
+}
+
+use GStreamer1::Caps::Simple;
+
+1;
+__END__
+
+
+=encoding utf8
+
+=head1 NAME
+
+ GStreamer1 - Bindings for GStreamer 1.0, the open source multimedia framework
+
+=head1 SYNOPSIS
+
+ use GStreamer1;
+
+ GStreamer1::init([ $0, @ARGV ]);
+ my $pipeline = GStreamer1::parse_launch( "playbin uri=$URI" );
+
+ $pipeline->set_state( "playing" );
+
+ my $bus = $pipeline->get_bus;
+ my $msg = $bus->timed_pop_filtered( GStreamer1::CLOCK_TIME_NONE,
+ [ 'error', 'eos' ]);
+
+ $pipeline->set_state( "null" );
+
+=head1 DESCRIPTION
+
+GStreamer1 implements a framework that allows for processing and encoding of
+multimedia sources in a manner similar to a shell pipeline.
+
+Because it's introspection-based, most of the classes follow directly from the
+C API. Therefore, most of the documentation is by example rather than
+a full breakdown of the class structure.
+
+=head1 PORTING FROM GStreamer
+
+If you're porting from the original GStreamer module, here are some things
+to keep in mind.
+
+=head2 ElementFactory
+
+The original GStreamer had a version of C<< ElementFactory->make() >> which
+could be called with a list of gst plugins and associated names. GStreamer1
+may add a similar method in the future. For now, the bindings directly follow
+from the C interface, so they take only one at a time.
+
+Example:
+
+ my $rpi = GStreamer1::ElementFactory::make( rpicamsrc => 'and_who' );
+ my $h264parse = GStreamer1::ElementFactory::make( h264parse => 'are_you' );
+ my $capsfilter = GStreamer1::ElementFactory::make(
+ capsfilter => 'the_proud_lord_said' );
+ my $avdec_h264 = GStreamer1::ElementFactory::make(
+ avdec_h264 => 'that_i_should_bow_so_low' );
+ my $jpegenc = GStreamer1::ElementFactory::make( jpegenc => 'only_a_cat' );
+ my $fakesink = GStreamer1::ElementFactory::make(
+ fakesink => 'of_a_different_coat' );
+
+=head2 Adding/linking
+
+The original GStreamer added methods for C<< Pipeline->add() >> and
+C<< Element->link() >> that could take lists of objects. GStreamer1 may add
+similar methods in the future. For now, the bindings directly follow from the
+C interface, so they take only one object at a time.
+
+Example:
+
+ my @link = ( $rpi, $h264parse, $capsfilter, $avdec_h264, $jpegenc, $fakesink );
+ $pipeline->add( $_ ) for @link;
+ foreach my $i (0 .. $#link) {
+ last if ! exists $link[$i+1];
+ my $this = $link[$i];
+ my $next = $link[$i+1];
+ $this->link( $next );
+ }
+
+=head1 EXAMPLES
+
+See the C<examples/> directory in the distribution.
+
+=head1 SEE ALSO
+
+L<GStreamer> - Perl bindings to the old 0.10 version of GStreamer
+
+L<http://gstreamer.freedesktop.org/>
+
+=head1 SPECIAL THANKS
+
+To Torsten Schönfeld for pointing me in the right direction on creating
+this module.
+
+=head1 LICENSE
+
+Copyright (c) 2014 Timm Murray
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of
+ conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of
+ conditions and the following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+=cut
diff --git a/lib/GStreamer1/Caps/Simple.pm b/lib/GStreamer1/Caps/Simple.pm
new file mode 100644
index 0000000..074e1d5
--- /dev/null
+++ b/lib/GStreamer1/Caps/Simple.pm
@@ -0,0 +1,52 @@
+# Copyright (c) 2014 Timm Murray
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+package GStreamer1::Caps::Simple;
+$GStreamer1::Caps::Simple::VERSION = '0.003';
+use v5.12;
+use warnings;
+
+
+sub new
+{
+ my ($class, $media_type, @args) = @_;
+ my $self = GStreamer1::Caps->new_empty_simple( $media_type );
+
+ while( scalar(@args) >= 3 ) {
+ my $name = shift @args;
+ my $type = shift @args;
+ my $value = shift @args;
+
+ my $glib_type_value = Glib::Object::Introspection::GValueWrapper->new(
+ $type => $value,
+ );
+ $self->set_value( $name => $glib_type_value );
+ }
+
+ return $self;
+}
+
+
+1;
+__END__
+
diff --git a/t/001_load.t b/t/001_load.t
new file mode 100644
index 0000000..9fb0c3f
--- /dev/null
+++ b/t/001_load.t
@@ -0,0 +1,27 @@
+# Copyright (c) 2014 Timm Murray
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+use Test::More tests => 2;
+use v5.12;
+use_ok( 'GStreamer1' );
+use_ok( 'GStreamer1::Caps::Simple' );
diff --git a/t/002_pod.t b/t/002_pod.t
new file mode 100644
index 0000000..6829ff0
--- /dev/null
+++ b/t/002_pod.t
@@ -0,0 +1,2 @@
+use Test::Pod;
+all_pod_files_ok( all_pod_files( 'lib' ) );
diff --git a/t/010_caps_simple.t b/t/010_caps_simple.t
new file mode 100644
index 0000000..e349637
--- /dev/null
+++ b/t/010_caps_simple.t
@@ -0,0 +1,38 @@
+# Copyright (c) 2014 Timm Murray
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+use Test::More tests => 3;
+use v5.14;
+use GStreamer1; # This should load GStreamer1::Caps::Simple on its own
+GStreamer1::init([ $0, @ARGV ]);
+
+
+my $caps = GStreamer1::Caps::Simple->new( 'video/x-h264',
+ width => 'Glib::Int' => 800,
+ height => 'Glib::Int' => 600,
+);
+isa_ok( $caps => 'GStreamer1::Caps' );
+
+my $struct = $caps->get_structure( 0 );
+cmp_ok( $struct->get_value( 'width' ), '==', 800, "Width set" );
+cmp_ok( $struct->get_value( 'height' ), '==', 600, "Height set" );
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libgstreamer1-perl.git
More information about the Pkg-perl-cvs-commits
mailing list