Hello community,
here is the log from the commit of package libdc1394 for openSUSE:Factory
checked in at Fri Jan 7 12:15:16 CET 2011.
--------
--- libdc1394/libdc1394.changes 2010-11-19 19:11:16.000000000 +0100
+++ /mounts/work_src_done/STABLE/libdc1394/libdc1394.changes 2011-01-03 08:40:07.000000000 +0100
@@ -1,0 +2,9 @@
+Mon Jan 3 10:27:58 MSK 2011 - matwey.kornilov@gmail.com
+- Update to 2.1.3.
+ - Bug fixes:
+ Fix for usb writes larger than 1 quadlet
+ On MAC OS, add needed frameworks to link line
+ Update firewire-{cdev,constants}.h to latest version and license
+ Change dequeue/enqueue to return error code if usb transfer haserror
+ dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN define
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
libdc1394-2.1.2.tar.bz2
New:
----
libdc1394-2.1.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libdc1394.spec ++++++
--- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:46.000000000 +0100
+++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:46.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package libdc1394 (Version 2.1.2)
+# spec file for package libdc1394 (Version 2.1.3)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -22,7 +22,7 @@
Name: libdc1394
%define libdc1394_12_version 1.2.2
-%define libdc1394_version 2.1.2
+%define libdc1394_version 2.1.3
BuildRequires: libraw1394-devel
%if 0%{?suse_version} > 1100
# no IIDC-over-USB support for openSUSE 11.0
@@ -32,7 +32,7 @@
Group: Hardware/Camera
AutoReqProv: on
Version: %{libdc1394_version}
-Release: 18
+Release: 1
Url: http://sourceforge.net/projects/libdc1394/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: 1394-Based Digital Camera Control Library
@@ -70,7 +70,7 @@
Summary: 1394-Based Digital Camera Control Library
Group: Hardware/Camera
Version: %{libdc1394_12_version}
-Release: 18
+Release: 19
%description -n libdc1394_control12
This library provides functionality for controlling any camera that
@@ -97,7 +97,7 @@
Summary: 1394-Based Digital Camera Control Library
Group: Development/Libraries/C and C++
Version: %{libdc1394_12_version}
-Release: 18
+Release: 19
Requires: libdc1394_control12 = %{libdc1394_12_version} libraw1394-devel
%description -n libdc1394_control12-devel
++++++ libdc1394-2.1.2.tar.bz2 -> libdc1394-2.1.3.tar.bz2 ++++++
++++ 5310 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/AUTHORS new/libdc1394-2.1.3/AUTHORS
--- old/libdc1394-2.1.2/AUTHORS 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/AUTHORS 2011-01-03 05:05:00.000000000 +0100
@@ -3,6 +3,7 @@
Christophe Achard
AgBr
+Shane Anderson
Simon Andersson
Peter Antoniac
Samuel Audet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/ChangeLog new/libdc1394-2.1.3/ChangeLog
--- old/libdc1394-2.1.2/ChangeLog 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/ChangeLog 2011-01-03 05:09:14.000000000 +0100
@@ -1,3 +1,17 @@
+2011-01-02 David Moore
+ * dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN
+ * Update NEWS, README, AUTHORS and version for release 2.1.3.
+
+2010-04-18 David Moore
+ * Change dequeue/enqueue to return error code if usb transfer has error.
+
+2010-04-17 David Moore
+ * Updated firewire-{cdev,constants}.h to latest version and MIT license.
+ * On Mac OS, add needed frameworks to link line (found by Holger Rapp)
+
+2009-09-19 David Moore
+ * Fix for usb writes larger than 1 quadlet found by Shane Anderson.
+
2009-06-10 David Moore
* Update NEWS and version for release 2.1.2.
* Revert 5cf24a2051fc77b35dacb6bf33bc500acd533488,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/configure.in new/libdc1394-2.1.3/configure.in
--- old/libdc1394-2.1.2/configure.in 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/configure.in 2011-01-03 05:12:36.000000000 +0100
@@ -1,6 +1,6 @@
# process this file with autoconf to get a configure script
AC_PREREQ([2.6.0])
-AC_INIT([libdc1394],[2.1.2],[libdc1394-devel@lists.sf.net])
+AC_INIT([libdc1394],[2.1.3],[libdc1394-devel@lists.sf.net])
AC_CONFIG_SRCDIR([dc1394/control.c])
AC_CANONICAL_SYSTEM
@@ -55,6 +55,8 @@
AC_CHECK_LIB(IOKit, IOMasterPort,
[AC_DEFINE(HAVE_MACOSX,[],[Defined if IOKitLib is present]) have_macosx=true],
[AC_MSG_ERROR(IOKitLib not found.)])
+ platform_LDFLAGS="-framework CoreServices -framework CoreFoundation -framework Carbon"
+ AC_SUBST(platform_LDFLAGS)
;;
*-*-cygwin* | *-*-mingw*)
have_windows=true
@@ -115,7 +117,7 @@
dnl 4. If the interface has removed or changed elements, set AGE to 0.
dnl ---------------------------------------------------------------------------
lt_current=23
-lt_revision=4
+lt_revision=5
lt_age=1
AC_SUBST(lt_current)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/conversions.h new/libdc1394-2.1.3/dc1394/conversions.h
--- old/libdc1394-2.1.2/dc1394/conversions.h 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/dc1394/conversions.h 2010-12-16 16:54:10.000000000 +0100
@@ -62,7 +62,7 @@
DC1394_STEREO_METHOD_INTERLACED=0,
DC1394_STEREO_METHOD_FIELD
} dc1394stereo_method_t;
-#define DC1394_STEREO_METHOD_MIN DC1394_STEREO_METHOD_INTERLACE
+#define DC1394_STEREO_METHOD_MIN DC1394_STEREO_METHOD_INTERLACED
#define DC1394_STEREO_METHOD_MAX DC1394_STEREO_METHOD_FIELD
#define DC1394_STEREO_METHOD_NUM (DC1394_STEREO_METHOD_MAX-DC1394_STEREO_METHOD_MIN+1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/juju/firewire-cdev.h new/libdc1394-2.1.3/dc1394/juju/firewire-cdev.h
--- old/libdc1394-2.1.2/dc1394/juju/firewire-cdev.h 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/dc1394/juju/firewire-cdev.h 2010-04-18 07:45:14.000000000 +0200
@@ -1,21 +1,26 @@
/*
* Char device interface.
*
- * Copyright (C) 2005-2006 Kristian Hoegsberg
+ * Copyright (C) 2005-2007 Kristian Hoegsberg
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
*/
#ifndef _LINUX_FIREWIRE_CDEV_H
@@ -138,7 +143,24 @@
* This event is sent when the controller has completed an &fw_cdev_iso_packet
* with the %FW_CDEV_ISO_INTERRUPT bit set. In the receive case, the headers
* stripped of all packets up until and including the interrupt packet are
- * returned in the @header field.
+ * returned in the @header field. The amount of header data per packet is as
+ * specified at iso context creation by &fw_cdev_create_iso_context.header_size.
+ *
+ * In version 1 of this ABI, header data consisted of the 1394 isochronous
+ * packet header, followed by quadlets from the packet payload if
+ * &fw_cdev_create_iso_context.header_size > 4.
+ *
+ * In version 2 of this ABI, header data consist of the 1394 isochronous
+ * packet header, followed by a timestamp quadlet if
+ * &fw_cdev_create_iso_context.header_size > 4, followed by quadlets from the
+ * packet payload if &fw_cdev_create_iso_context.header_size > 8.
+ *
+ * Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2.
+ *
+ * Format of 1394 iso packet header: 16 bits len, 2 bits tag, 6 bits channel,
+ * 4 bits tcode, 4 bits sy, in big endian byte order. Format of timestamp:
+ * 16 bits invalid, 3 bits cycleSeconds, 13 bits cycleCount, in big endian byte
+ * order.
*/
struct fw_cdev_event_iso_interrupt {
__u64 closure;
@@ -157,8 +179,6 @@
* @handle: Reference by which an allocated resource can be deallocated
* @channel: Isochronous channel which was (de)allocated, if any
* @bandwidth: Bandwidth allocation units which were (de)allocated, if any
- * @channels_available: Last known availability of channels
- * @bandwidth_available: Last known availability of bandwidth
*
* An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous
* resource was allocated at the IRM. The client has to check @channel and
@@ -208,35 +228,45 @@
};
/* available since kernel version 2.6.22 */
-#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info)
-#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request)
-#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate)
-#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate)
-#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response)
-#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset)
-#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor)
-#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor)
-#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context)
-#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso)
-#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso)
-#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso)
+#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info)
+#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request)
+#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate)
+#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate)
+#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response)
+#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset)
+#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor)
+#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor)
+#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context)
+#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso)
+#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso)
+#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso)
/* available since kernel version 2.6.24 */
-#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer)
+#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer)
/* available since kernel version 2.6.30 */
#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource)
#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE _IOW('#', 0x0e, struct fw_cdev_deallocate)
#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource)
#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource)
-#define FW_CDEV_IOC_GET_SPEED _IOR('#', 0x11, struct fw_cdev_get_speed)
+#define FW_CDEV_IOC_GET_SPEED _IO('#', 0x11) /* returns speed code */
#define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request)
+#define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet)
-/* FW_CDEV_VERSION History
- *
- * 1 Feb 18, 2007: Initial version.
+/* available since kernel version 2.6.34 */
+#define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2)
+
+/*
+ * FW_CDEV_VERSION History
+ * 1 (2.6.22) - initial version
+ * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if
+ * &fw_cdev_create_iso_context.header_size is 8 or more
+ * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt
+ * (2.6.33) - IR has always packet-per-buffer semantics now, not one of
+ * dual-buffer or packet-per-buffer depending on hardware
+ * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable
*/
-#define FW_CDEV_VERSION 1
+#define FW_CDEV_VERSION 3
/**
* struct fw_cdev_get_info - General purpose information ioctl
@@ -322,6 +352,9 @@
* The @closure field is passed back to userspace in the response event.
* The @handle field is an out parameter, returning a handle to the allocated
* range to be used for later deallocation of the range.
+ *
+ * The address range is allocated on all local nodes. The address allocation
+ * is exclusive except for the FCP command and response registers.
*/
struct fw_cdev_allocate {
__u64 offset;
@@ -359,7 +392,7 @@
* @immediate: If non-zero, immediate key to insert before pointer
* @key: Upper 8 bits of root directory pointer
* @data: Userspace pointer to contents of descriptor block
- * @length: Length of descriptor block data, in bytes
+ * @length: Length of descriptor block data, in quadlets
* @handle: Handle to the descriptor, written by the kernel
*
* Add a descriptor block and optionally a preceding immediate key to the local
@@ -373,9 +406,14 @@
* If not 0, the @immediate field specifies an immediate key which will be
* inserted before the root directory pointer.
*
+ * @immediate, @key, and @data array elements are CPU-endian quadlets.
+ *
* If successful, the kernel adds the descriptor and writes back a handle to the
* kernel-side object to be used for later removal of the descriptor block and
* immediate key.
+ *
+ * This ioctl affects the configuration ROMs of all local nodes.
+ * The ioctl only succeeds on device files which represent a local node.
*/
struct fw_cdev_add_descriptor {
__u32 immediate;
@@ -391,7 +429,7 @@
* descriptor was added
*
* Remove a descriptor block and accompanying immediate key from the local
- * node's configuration ROM.
+ * nodes' configuration ROMs.
*/
struct fw_cdev_remove_descriptor {
__u32 handle;
@@ -405,7 +443,7 @@
* @type: %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE
* @header_size: Header size to strip for receive contexts
* @channel: Channel to bind to
- * @speed: Speed to transmit at
+ * @speed: Speed for transmit contexts
* @closure: To be returned in &fw_cdev_event_iso_interrupt
* @handle: Handle to context, written back by kernel
*
@@ -417,6 +455,12 @@
*
* If a context was successfully created, the kernel writes back a handle to the
* context, which must be passed in for subsequent operations on that context.
+ *
+ * For receive contexts, @header_size must be at least 4 and must be a multiple
+ * of 4.
+ *
+ * Note that the effect of a @header_size > 4 depends on
+ * &fw_cdev_get_info.version, as documented at &fw_cdev_event_iso_interrupt.
*/
struct fw_cdev_create_iso_context {
__u32 type;
@@ -445,10 +489,34 @@
*
* &struct fw_cdev_iso_packet is used to describe isochronous packet queues.
*
- * Use the FW_CDEV_ISO_ macros to fill in @control. The sy and tag fields are
- * specified by IEEE 1394a and IEC 61883.
+ * Use the FW_CDEV_ISO_ macros to fill in @control.
*
- * FIXME - finish this documentation
+ * For transmit packets, the header length must be a multiple of 4 and specifies
+ * the numbers of bytes in @header that will be prepended to the packet's
+ * payload; these bytes are copied into the kernel and will not be accessed
+ * after the ioctl has returned. The sy and tag fields are copied to the iso
+ * packet header (these fields are specified by IEEE 1394a and IEC 61883-1).
+ * The skip flag specifies that no packet is to be sent in a frame; when using
+ * this, all other fields except the interrupt flag must be zero.
+ *
+ * For receive packets, the header length must be a multiple of the context's
+ * header size; if the header length is larger than the context's header size,
+ * multiple packets are queued for this entry. The sy and tag fields are
+ * ignored. If the sync flag is set, the context drops all packets until
+ * a packet with a matching sy field is received (the sync value to wait for is
+ * specified in the &fw_cdev_start_iso structure). The payload length defines
+ * how many payload bytes can be received for one packet (in addition to payload
+ * quadlets that have been defined as headers and are stripped and returned in
+ * the &fw_cdev_event_iso_interrupt structure). If more bytes are received, the
+ * additional bytes are dropped. If less bytes are received, the remaining
+ * bytes in this part of the payload buffer will not be written to, not even by
+ * the next packet, i.e., packets received in consecutive frames will not
+ * necessarily be consecutive in memory. If an entry has queued multiple
+ * packets, the payload length is divided equally among them.
+ *
+ * When a packet with the interrupt flag set has been completed, the
+ * &fw_cdev_event_iso_interrupt event will be sent. An entry that has queued
+ * multiple receive packets is completed when its last packet is completed.
*/
struct fw_cdev_iso_packet {
__u32 control;
@@ -465,7 +533,7 @@
* Queue a number of isochronous packets for reception or transmission.
* This ioctl takes a pointer to an array of &fw_cdev_iso_packet structs,
* which describe how to transmit from or receive into a contiguous region
- * of a mmap()'ed payload buffer. As part of the packet descriptors,
+ * of a mmap()'ed payload buffer. As part of transmit packet descriptors,
* a series of headers can be supplied, which will be prepended to the
* payload during DMA.
*
@@ -515,11 +583,18 @@
/**
* struct fw_cdev_get_cycle_timer - read cycle timer register
* @local_time: system time, in microseconds since the Epoch
- * @cycle_timer: isochronous cycle timer, as per OHCI 1.1 clause 5.13
+ * @cycle_timer: Cycle Time register contents
*
* The %FW_CDEV_IOC_GET_CYCLE_TIMER ioctl reads the isochronous cycle timer
- * and also the system clock. This allows to express the receive time of an
- * isochronous packet as a system time with microsecond accuracy.
+ * and also the system clock (%CLOCK_REALTIME). This allows to express the
+ * receive time of an isochronous packet as a system time.
+ *
+ * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and
+ * 12 bits cycleOffset, in host byte order. Cf. the Cycle Time register
+ * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394.
+ *
+ * In version 1 and 2 of the ABI, this ioctl returned unreliable (non-
+ * monotonic) @cycle_timer values on certain controllers.
*/
struct fw_cdev_get_cycle_timer {
__u64 local_time;
@@ -527,6 +602,25 @@
};
/**
+ * struct fw_cdev_get_cycle_timer2 - read cycle timer register
+ * @tv_sec: system time, seconds
+ * @tv_nsec: system time, sub-seconds part in nanoseconds
+ * @clk_id: input parameter, clock from which to get the system time
+ * @cycle_timer: Cycle Time register contents
+ *
+ * The %FW_CDEV_IOC_GET_CYCLE_TIMER2 works like
+ * %FW_CDEV_IOC_GET_CYCLE_TIMER but lets you choose a clock like with POSIX'
+ * clock_gettime function. Supported @clk_id values are POSIX' %CLOCK_REALTIME
+ * and %CLOCK_MONOTONIC and Linux' %CLOCK_MONOTONIC_RAW.
+ */
+struct fw_cdev_get_cycle_timer2 {
+ __s64 tv_sec;
+ __s32 tv_nsec;
+ __s32 clk_id;
+ __u32 cycle_timer;
+};
+
+/**
* struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth
* @closure: Passed back to userspace in correponding iso resource events
* @channels: Isochronous channels of which one is to be (de)allocated
@@ -555,17 +649,17 @@
*
* The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like
* %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed
- * instead of allocated. At most one channel may be specified in this ioctl.
+ * instead of allocated.
* An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation.
*
- * To summarize, %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE allocates iso resources
- * for the lifetime of the fd or handle.
+ * To summarize, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE allocates iso resources
+ * for the lifetime of the fd or @handle.
* In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources
* for the duration of a bus generation.
*
- * @channels is a host-endian bitfield with the most significant bit
- * representing channel 0 and the least significant bit representing channel 63:
- * 1ULL << (63 - c)
+ * @channels is a host-endian bitfield with the least significant bit
+ * representing channel 0 and the most significant bit representing channel 63:
+ * 1ULL << c for each channel c that is a candidate for (de)allocation.
*
* @bandwidth is expressed in bandwidth allocation units, i.e. the time to send
* one quadlet of data (payload or header data) at speed S1600.
@@ -578,12 +672,30 @@
};
/**
- * struct fw_cdev_get_speed - Query maximum speed to or from this device
- * @max_speed: Speed code; minimum of the device's link speed, the local node's
- * link speed, and all PHY port speeds between the two links
+ * struct fw_cdev_send_stream_packet - send an asynchronous stream packet
+ * @length: Length of outgoing payload, in bytes
+ * @tag: Data format tag
+ * @channel: Isochronous channel to transmit to
+ * @sy: Synchronization code
+ * @closure: Passed back to userspace in the response event
+ * @data: Userspace pointer to payload
+ * @generation: The bus generation where packet is valid
+ * @speed: Speed to transmit at
+ *
+ * The %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet
+ * to every device which is listening to the specified channel. The kernel
+ * writes an &fw_cdev_event_response event which indicates success or failure of
+ * the transmission.
*/
-struct fw_cdev_get_speed {
- __u32 max_speed;
+struct fw_cdev_send_stream_packet {
+ __u32 length;
+ __u32 tag;
+ __u32 channel;
+ __u32 sy;
+ __u64 closure;
+ __u64 data;
+ __u32 generation;
+ __u32 speed;
};
#endif /* _LINUX_FIREWIRE_CDEV_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/juju/firewire-constants.h new/libdc1394-2.1.3/dc1394/juju/firewire-constants.h
--- old/libdc1394-2.1.2/dc1394/juju/firewire-constants.h 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/dc1394/juju/firewire-constants.h 2010-04-18 07:45:02.000000000 +0200
@@ -1,3 +1,28 @@
+/*
+ * IEEE 1394 constants.
+ *
+ * Copyright (C) 2005-2007 Kristian Hoegsberg
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
#ifndef _LINUX_FIREWIRE_CONSTANTS_H
#define _LINUX_FIREWIRE_CONSTANTS_H
@@ -21,7 +46,7 @@
#define EXTCODE_WRAP_ADD 0x6
#define EXTCODE_VENDOR_DEPENDENT 0x7
-/* Juju specific tcodes */
+/* Linux firewire-core (Juju) specific tcodes */
#define TCODE_LOCK_MASK_SWAP (0x10 | EXTCODE_MASK_SWAP)
#define TCODE_LOCK_COMPARE_SWAP (0x10 | EXTCODE_COMPARE_SWAP)
#define TCODE_LOCK_FETCH_ADD (0x10 | EXTCODE_FETCH_ADD)
@@ -36,7 +61,7 @@
#define RCODE_TYPE_ERROR 0x6
#define RCODE_ADDRESS_ERROR 0x7
-/* Juju specific rcodes */
+/* Linux firewire-core (Juju) specific rcodes */
#define RCODE_SEND_ERROR 0x10
#define RCODE_CANCELLED 0x11
#define RCODE_BUSY 0x12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/usb/capture.c new/libdc1394-2.1.3/dc1394/usb/capture.c
--- old/libdc1394-2.1.2/dc1394/usb/capture.c 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/dc1394/usb/capture.c 2010-04-18 23:53:21.000000000 +0200
@@ -41,15 +41,18 @@
return;
}
- if (transfer->status != LIBUSB_TRANSFER_COMPLETED)
- dc1394_log_error ("usb: Bulk transfer %d failed with code %d",
- f->frame.id, transfer->status);
-
dc1394_log_debug ("usb: Bulk transfer %d complete, %d of %d bytes",
f->frame.id, transfer->actual_length, transfer->length);
int status = BUFFER_FILLED;
if (transfer->actual_length < transfer->length)
status = BUFFER_CORRUPT;
+
+ if (transfer->status != LIBUSB_TRANSFER_COMPLETED) {
+ dc1394_log_error ("usb: Bulk transfer %d failed with code %d",
+ f->frame.id, transfer->status);
+ status = BUFFER_ERROR;
+ }
+
pthread_mutex_lock (&craw->mutex);
f->status = status;
craw->frames_ready++;
@@ -131,6 +134,7 @@
craw->num_frames = num_dma_buffers;
craw->current = -1;
craw->frames_ready = 0;
+ craw->queue_broken = 0;
craw->buffer_size = proto.total_bytes * num_dma_buffers;
craw->buffer = malloc (craw->buffer_size);
if (craw->buffer == NULL) {
@@ -311,15 +315,18 @@
pthread_mutex_lock (&craw->mutex);
status = f->status;
pthread_mutex_unlock (&craw->mutex);
- if (status != BUFFER_FILLED && status != BUFFER_CORRUPT)
+ if (status == BUFFER_EMPTY)
return DC1394_SUCCESS;
}
+ if (craw->queue_broken)
+ return DC1394_FAILURE;
+
char ch;
read (craw->notify_pipe[0], &ch, 1);
pthread_mutex_lock (&craw->mutex);
- if (f->status != BUFFER_FILLED && f->status != BUFFER_CORRUPT) {
+ if (f->status == BUFFER_EMPTY) {
dc1394_log_error ("usb: Expected filled buffer");
pthread_mutex_unlock (&craw->mutex);
return DC1394_FAILURE;
@@ -332,6 +339,9 @@
*frame_return = &f->frame;
+ if (f->status == BUFFER_ERROR)
+ return DC1394_FAILURE;
+
return DC1394_SUCCESS;
}
@@ -347,13 +357,16 @@
return DC1394_INVALID_ARGUMENT_VALUE;
}
- if (f->status != BUFFER_FILLED && f->status != BUFFER_CORRUPT) {
+ if (f->status == BUFFER_EMPTY) {
dc1394_log_error ("usb: Frame is not enqueuable");
return DC1394_FAILURE;
}
f->status = BUFFER_EMPTY;
- libusb_submit_transfer (f->transfer);
+ if (libusb_submit_transfer (f->transfer) != LIBUSB_SUCCESS) {
+ craw->queue_broken = 1;
+ return DC1394_FAILURE;
+ }
return DC1394_SUCCESS;
}
@@ -373,7 +386,7 @@
{
struct usb_frame * f = (struct usb_frame *) frame;
- if (f->status == BUFFER_CORRUPT)
+ if (f->status == BUFFER_CORRUPT || f->status == BUFFER_ERROR)
return DC1394_TRUE;
return DC1394_FALSE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/usb/control.c new/libdc1394-2.1.3/dc1394/usb/control.c
--- old/libdc1394-2.1.2/dc1394/usb/control.c 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/dc1394/usb/control.c 2009-09-19 20:40:21.000000000 +0200
@@ -200,10 +200,10 @@
int i;
/* Convert from host-endian to little-endian */
for (i = 0; i < num_quads; i++) {
- buf[4*i] = quads[0] & 0xff;
- buf[4*i+1] = (quads[0] >> 8) & 0xff;
- buf[4*i+2] = (quads[0] >> 16) & 0xff;
- buf[4*i+3] = (quads[0] >> 24) & 0xff;
+ buf[4*i] = quads[i] & 0xff;
+ buf[4*i+1] = (quads[i] >> 8) & 0xff;
+ buf[4*i+2] = (quads[i] >> 16) & 0xff;
+ buf[4*i+3] = (quads[i] >> 24) & 0xff;
}
/* IEEE 1394 address writes are mapped to USB control transfers as
* shown here. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/usb/usb.h new/libdc1394-2.1.3/dc1394/usb/usb.h
--- old/libdc1394-2.1.2/dc1394/usb/usb.h 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/dc1394/usb/usb.h 2010-04-18 23:51:36.000000000 +0200
@@ -44,6 +44,7 @@
unsigned int num_frames;
int current;
int frames_ready;
+ int queue_broken;
uint8_t bus;
uint8_t addr;
@@ -64,6 +65,7 @@
BUFFER_EMPTY,
BUFFER_FILLED,
BUFFER_CORRUPT,
+ BUFFER_ERROR,
} usb_frame_status;
struct usb_frame {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/NEWS new/libdc1394-2.1.3/NEWS
--- old/libdc1394-2.1.2/NEWS 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/NEWS 2011-01-03 05:04:36.000000000 +0100
@@ -1,6 +1,14 @@
Release information and news:
-----------------------------
+-- 2.1.3:
+ - Bug fixes:
+ - Fix for usb writes larger than 1 quadlet
+ - On MAC OS, add needed frameworks to link line
+ - Update firewire-{cdev,constants}.h to latest version and license
+ - Change dequeue/enqueue to return error code if usb transfer has error
+ - dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN define
+
-- 2.1.2:
- Fix broken ABI caused by new Format7 modes in release 2.1.1.
Reverted for now.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/README new/libdc1394-2.1.3/README
--- old/libdc1394-2.1.2/README 2009-06-11 06:05:47.000000000 +0200
+++ new/libdc1394-2.1.3/README 2011-01-03 05:07:36.000000000 +0100
@@ -57,7 +57,7 @@
make install
Obviously, you need to be root when executing the last statement if you wish to
-do a system-wide installation. To compile and install libdc1394 from an SVN
+do a system-wide installation. To compile and install libdc1394 from a git
source tree do the following:
autoreconf -i -s
@@ -65,11 +65,10 @@
make
make install
-Details on getting a source tree from the SVN repository is beyond the scope of
+Details on getting a source tree from the git repository is beyond the scope of
this small readme but the following command should give you the latest trunk:
-svn co https://libdc1394.svn.sourceforge.net/svnroot/libdc1394/trunk/libdc1394/
-
+git clone git://libdc1394.git.sourceforge.net/gitroot/libdc1394/libdc1394
--
2000-01-13 Gord Peters
++++++ libdc1394.ac.patch ++++++
--- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:47.000000000 +0100
+++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:47.000000000 +0100
@@ -1,5 +1,5 @@
---- a/libdc1394-2.1.2/configure.in 2009-11-23 10:11:16.000000000 +0300
-+++ b/libdc1394-2.1.2/configure.in 2009-11-23 10:11:51.000000000 +0300
+--- a/libdc1394-2.1.3/configure.in 2009-11-23 10:11:16.000000000 +0300
++++ b/libdc1394-2.1.3/configure.in 2009-11-23 10:11:51.000000000 +0300
@@ -5,12 +5,6 @@
AC_CANONICAL_SYSTEM
++++++ libdc1394.no-x11.patch ++++++
--- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:47.000000000 +0100
+++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:47.000000000 +0100
@@ -13,9 +13,9 @@
grab_gray_image_SOURCES = grab_gray_image.c
grab_gray_image_LDADD = ../libdc1394/libdc1394_control.la -lraw1394
---- a/libdc1394-2.1.2/configure.in
-+++ b/libdc1394-2.1.2/configure.in
-@@ -79,21 +79,30 @@
+--- a/libdc1394-2.1.3/configure.in
++++ b/libdc1394-2.1.3/configure.in
+@@ -76,21 +76,30 @@
# check for Xv extensions (necessary for examples/dc1394_multiview)
# imported from Coriander
++++++ libdc1394-swab_fix.patch ++++++
--- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:47.000000000 +0100
+++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:47.000000000 +0100
@@ -2,8 +2,8 @@
libdc1394-2.0.2/dc1394/conversions.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
---- a/libdc1394-2.1.2/dc1394/conversions.c
-+++ b/libdc1394-2.1.2/dc1394/conversions.c
+--- a/libdc1394-2.1.3/dc1394/conversions.c
++++ b/libdc1394-2.1.3/dc1394/conversions.c
@@ -22,11 +22,10 @@
#include
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org