libiec61883

This commit is contained in:
Poyraz76
2015-08-20 18:08:46 +03:00
parent d81be77441
commit 05686d1683
5 changed files with 255 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get
def setup():
autotools.configure("--disable-static")
def build():
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodoc("AUTHORS", "ChangeLog", "NEWS", "README")
@@ -0,0 +1,28 @@
diff -Naurp libiec61883-1.2.0.orig/examples/Makefile.am libiec61883-1.2.0/examples/Makefile.am
--- libiec61883-1.2.0.orig/examples/Makefile.am 2006-09-24 15:34:12.000000000 -0400
+++ libiec61883-1.2.0/examples/Makefile.am 2009-01-15 10:29:02.265594991 -0500
@@ -1,6 +1,6 @@
-noinst_PROGRAMS = test-amdtp test-dv test-mpeg2 test-plugs
-bin_PROGRAMS = plugreport plugctl
+noinst_PROGRAMS =
+bin_PROGRAMS = plugreport plugctl test-amdtp test-dv test-mpeg2 test-plugs
man_MANS = plugreport.1 plugctl.1
EXTRA_DIST = plugreport.1 plugctl.1
diff -Naurp libiec61883-1.2.0.orig/examples/Makefile.in libiec61883-1.2.0/examples/Makefile.in
--- libiec61883-1.2.0.orig/examples/Makefile.in 2009-01-15 01:33:33.000000000 -0500
+++ libiec61883-1.2.0/examples/Makefile.in 2009-01-15 10:28:57.088402078 -0500
@@ -32,9 +32,10 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = test-amdtp$(EXEEXT) test-dv$(EXEEXT) \
+noinst_PROGRAMS =
+bin_PROGRAMS = plugreport$(EXEEXT) plugctl$(EXEEXT) \
+ test-amdtp$(EXEEXT) test-dv$(EXEEXT) \
test-mpeg2$(EXEEXT) test-plugs$(EXEEXT)
-bin_PROGRAMS = plugreport$(EXEEXT) plugctl$(EXEEXT)
subdir = examples
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -0,0 +1,117 @@
Date: Thu, 15 Jan 2009 15:41:16 +0100 (CET)
From: Stefan Richter <stefanr@s5r6.in-berlin.de>
Subject: [PATCH libiec61883] cmp: replace open-coded channel allocation by
raw1394_channel_modify
To: Dan Dennedy <dan@dennedy.org>
Cc: linux1394-devel@lists.sourceforge.net
On 15 Jan, Dan Dennedy wrote:
> On Thu, Jan 1, 2009 at 5:13 AM, Stefan Richter
> <stefanr@s5r6.in-berlin.de> wrote:
>> input plug register on the local node? AFAICT neither dvgrab nor kino
>> use raw1394_channel_modify and raw1394_bandwidth_modify, not even
>> through libiec61883.)
>
> dvgrab indirectly uses channel_modify when you use its -guid option to
> establish a point-to-point connection.
>
Hmm.
$ dvgrab -guid 0x008088030960484b
libiec61883 error: Failed to get channels available.
Established connection over channel 63
[...proceeds with capture...]
--------------------------------- 8< ---------------------------------
cmp: replace open-coded channel allocation by raw1394_channel_modify
The benefit is that it works on kernel 2.6.30 firewire-core without
write permission to the IRM's device file (provided that libraw1394 is
extended for 2.6.30 ioctls too, otherwise it still needs access to the
IRM's file).
If I read the code correctly, iec61883_cmp_normalize_output doesn't care
whether the channel was already allocated by somebody else; it only
cares that the channel is allocated. That's what the new code does too.
---
src/cmp.c | 56 +++++++++---------------------------------------------
1 file changed, 10 insertions(+), 46 deletions(-)
Index: libiec61883-1.2.0/src/cmp.c
===================================================================
--- libiec61883-1.2.0.orig/src/cmp.c
+++ libiec61883-1.2.0/src/cmp.c
@@ -973,55 +973,19 @@ iec61883_cmp_normalize_output (raw1394ha
DEBUG ("iec61883_cmp_normalize_output: node %d\n", (int) node & 0x3f);
- // Check for plugs on output
+ /* Check for plugs on output */
result = iec61883_get_oMPR (handle, node, &ompr);
if (result < 0)
return result;
- // locate an ouput plug that has a connection
- for (oplug = 0; oplug < ompr.n_plugs; oplug++) {
- if (iec61883_get_oPCRX (handle, node, &opcr, oplug) == 0) {
- if (opcr.online && (opcr.n_p2p_connections > 0 ||
- opcr.bcast_connection == 1)) {
+ /* Locate an ouptut plug that has a connection,
+ * make sure the plug's channel is allocated with IRM */
+ for (oplug = 0; oplug < ompr.n_plugs; oplug++)
+ if (iec61883_get_oPCRX (handle, node, &opcr, oplug) == 0
+ && opcr.online
+ && (opcr.n_p2p_connections > 0 || opcr.bcast_connection == 1)
+ && raw1394_channel_modify (handle, opcr.channel, RAW1394_MODIFY_ALLOC) < 0)
+ DEBUG ("Channel %d already allocated, or can't reach IRM", opcr.channel);
- // Make sure the plug's channel is allocated with IRM
- quadlet_t buffer;
- nodeaddr_t addr = CSR_REGISTER_BASE;
- unsigned int c = opcr.channel;
- quadlet_t compare, swap = 0;
- quadlet_t new;
-
- if (c > 31 && c < 64) {
- addr += CSR_CHANNELS_AVAILABLE_LO;
- c -= 32;
- } else if (c < 64)
- addr += CSR_CHANNELS_AVAILABLE_HI;
- else
- FAIL ("Invalid channel");
- c = 31 - c;
-
- result = iec61883_cooked_read (handle, raw1394_get_irm_id (handle), addr,
- sizeof (quadlet_t), &buffer);
- if (result < 0)
- FAIL ("Failed to get channels available.");
-
- buffer = ntohl (buffer);
- DEBUG ("channels available before: 0x%08x", buffer);
-
- if ((buffer & (1 << c)) != 0) {
- swap = htonl (buffer & ~(1 << c));
- compare = htonl (buffer);
-
- result = raw1394_lock (handle, raw1394_get_irm_id (handle), addr,
- EXTCODE_COMPARE_SWAP, swap, compare, &new);
- if ( (result < 0) || (new != compare) ) {
- FAIL ("Failed to modify channel %d", opcr.channel);
- }
- DEBUG ("channels available after: 0x%08x", ntohl (swap));
- }
- }
- }
- }
-
- return result;
+ return 0;
}
--
Stefan Richter
-=====-==--= ---= -====
http://arcgraph.de/sr/
+75
View File
@@ -0,0 +1,75 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>libiec61883</Name>
<Homepage>http://www.linux1394.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>LGPLv2.1</License>
<License>GPLv2</License>
<IsA>library</IsA>
<Summary>A library for capturing video (DV, MPEG2 or AMDTP) over the IEEE 1394 bus</Summary>
<Description>libiec61883 is a library providing third generation media reception and transmission for DV, MPEG2-TS, and AMDTP (audio and music) using only raw1394 and not the complicated setup and maintenance of other kernel modules and their /dev nodes.</Description>
<Archive sha1sum="2ede483039df7595a00f173515737549c529cb72" type="targz">http://www.kernel.org/pub/linux/libs/ieee1394/libiec61883-1.2.0.tar.gz</Archive>
<BuildDependencies>
<Dependency>libraw1394-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">libiec61883-1.2.0-installtests.patch</Patch>
<Patch level="1">libiec61883-channel-allocation-without-local-node-rw.patch</Patch>
</Patches>
</Source>
<Package>
<Name>libiec61883</Name>
<RuntimeDependencies>
<Dependency>libraw1394</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
</Package>
<Package>
<Name>libiec61883-devel</Name>
<Summary>Development files for libiec61883</Summary>
<RuntimeDependencies>
<Dependency release="current">libiec61883</Dependency>
<Dependency>libraw1394-devel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="3">
<Date>2014-03-09</Date>
<Version>1.2.0</Version>
<Comment>Rebuild.</Comment>
<Name>Kamil Atlı</Name>
<Email>suvarice@gmail.com</Email>
</Update>
<Update release="2">
<Date>2013-07-28</Date>
<Version>1.2.0</Version>
<Comment>Dep Fixed</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-15</Date>
<Version>1.2.0</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,15 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>libiec61883</Name>
<Summary xml:lang="tr">IEEE 1394 veriyolundan video dosyalarını aktarmak için kullanılan bir kütüphane</Summary>
<Description xml:lang="tr">IEEE 1394 veriyolundan video dosyalarını aktarmak için kullanılan bir kütüphane</Description>
<Description xml:lang="fr">Cette librairie fournit aux les médias de troisième génération la réception et la transmission pour DV, MPEG2-TS et AMDTP (audio et musique) en n'utilisant que raw1394 sans nécessiter une configuration et une maintenance compliquées d'autres modules du noyau et de leurs nodes dans /dev.</Description>
<Description xml:lang="es">La librería facilita recepción y transmisión de media de tercera generación para DV, MPEG2-TS, y AMDTP (audio y music), usando solamente la interfaz 1394 en crudo, sin configuración complicada y mantenimiento de otros módulos de kernel y nodos /dev correspondientes.</Description>
</Source>
<Package>
<Name>libiec61883-devel</Name>
<Summary xml:lang="tr">libiec61883 için geliştirme dosyaları</Summary>
</Package>
</PISI>