------------------------------------------------------------------------
r83 | ddennedy | 2009-01-04 15:11:00 -0800 (Sun, 04 Jan 2009) | 1 line

dv.c: remove a length check in dv_fb_recv that was already checked
------------------------------------------------------------------------
r82 | ddennedy | 2009-01-04 14:09:53 -0800 (Sun, 04 Jan 2009) | 1 line

dv.c: add some validation to the dv_fb receive handler
------------------------------------------------------------------------
r81 | ddennedy | 2008-10-25 11:28:37 -0700 (Sat, 25 Oct 2008) | 1 line

cmp.c: convert some confusing, chatty warnings into debug messages
------------------------------------------------------------------------
r80 | ddennedy | 2008-02-02 11:43:09 -0800 (Sat, 02 Feb 2008) | 1 line

tsbuffer.c: fix return size of ts_get_pid() to prevent truncation of value (as reported by Kai Hoffmann)
------------------------------------------------------------------------
r79 | ddennedy | 2007-10-04 22:21:41 -0700 (Thu, 04 Oct 2007) | 1 line

cmp.c: apply patch from Hugo Villeneuve to refactor iec61883_cmp_connect and _reconnect.
------------------------------------------------------------------------
r78 | ddennedy | 2007-06-27 22:42:05 -0700 (Wed, 27 Jun 2007) | 1 line

dv.c: bugfix start iso transmission when initialization fails in iec61883_dv_xmit_start (spotted by Maksym Veremeyenko)
------------------------------------------------------------------------
r77 | ddennedy | 2007-05-14 21:37:39 -0700 (Mon, 14 May 2007) | 1 line

convert c++ comments in amdtp.c to c-style
------------------------------------------------------------------------
r76 | ddennedy | 2007-05-14 21:33:18 -0700 (Mon, 14 May 2007) | 26 lines

Apply patch from Manfred Weihs:
1) I made IEC 60958 conformant PCM data more standard compliant. In
particular, I correctly calculate parity and PAC code. This was the
major fix that was necessary to make the Sony LISSA HiFi set output my
streams.

2) I fixed the buffer variable in the fill_packet function to unsigned
char. The problem with (signed) char was that the compiler treats values
greater than 127 as negative and when it implicitly converts them to
(long) integers for the bit shifting operations, it sets all the more
significant bits (e. g. 0xa3 is converted to 0xffffffa3), which
obviously creates mess (i. e. noise in the speakers).

3) In case packets get dropped (e. g. due to high load), the algorithm
for generating SYT timestamps gets out of sync with the actual cycle
count. I introduced a new function iec61883_cip_resync that (similar to
iec61883_cip_init) resets some internal variables and synchronises the
SYT timestamp generation with the cycle count. This function is called
when dropped packets are detected. Unfortunately this turned out not to
be sufficient because after dropped packets the reported cycle count is
not correct. Therefore, I check whether the timestamps are in sync and
resynchronise if necessary.

4) I fixed some compiler warnings (mostly signedness issues) and removed
an unused field of a struct.

------------------------------------------------------------------------
r75 | ddennedy | 2007-03-19 19:17:52 -0700 (Mon, 19 Mar 2007) | 1 line

large file support for examples
------------------------------------------------------------------------
r74 | ddennedy | 2007-03-19 18:02:34 -0700 (Mon, 19 Mar 2007) | 1 line

Apply patch from Robert Hailey to bugfix PID automatic selection possible on TSP with no PCR. Fix PCR PID filter option on test-mpeg2 utility.
------------------------------------------------------------------------
r73 | ddennedy | 2006-09-24 11:18:49 -0700 (Sun, 24 Sep 2006) | 1 line

make manpages a part of dist tarball
------------------------------------------------------------------------
r72 | ddennedy | 2006-09-24 11:14:36 -0700 (Sun, 24 Sep 2006) | 1 line

add missing include to amdtp.c for memset call
------------------------------------------------------------------------
r71 | ddennedy | 2006-09-24 11:12:19 -0700 (Sun, 24 Sep 2006) | 1 line

change autogen.sh to just use autoreconf, which is better maintained than this P.O.S.
------------------------------------------------------------------------
r70 | ddennedy | 2006-09-24 11:08:27 -0700 (Sun, 24 Sep 2006) | 1 line

add manpages for installable utilities from Debian developer Marcio Roberto Teixeira
------------------------------------------------------------------------
r69 | ddennedy | 2006-09-24 10:50:51 -0700 (Sun, 24 Sep 2006) | 1 line

required latest libraw1394 version to avoid failures on iso transmit operations
------------------------------------------------------------------------
r68 | ddennedy | 2006-04-08 19:38:07 -0700 (Sat, 08 Apr 2006) | 1 line

cleanup inadvertant debug messages committed with r55
------------------------------------------------------------------------
r67 | ddennedy | 2005-11-11 12:28:58 -0800 (Fri, 11 Nov 2005) | 2 lines

bump versions

------------------------------------------------------------------------
r66 | ddennedy | 2005-11-11 10:01:34 -0800 (Fri, 11 Nov 2005) | 3 lines

Add a dv object accessor on the dv_fb object so applications can set dv 
receive options such as irq interval, etc.

------------------------------------------------------------------------
r65 | ddennedy | 2005-11-11 10:00:11 -0800 (Fri, 11 Nov 2005) | 4 lines

iec61883_cmp_connect() never creates a broadcast connection, so deallocating
make lead to a deficit or setting bcast_connection to zero may casuse strange
side effects on some devices.

------------------------------------------------------------------------
r64 | ddennedy | 2005-07-03 20:31:32 -0700 (Sun, 03 Jul 2005) | 1 line

cleanup test-dv poll usage
------------------------------------------------------------------------
r63 | ddennedy | 2005-07-03 20:21:37 -0700 (Sun, 03 Jul 2005) | 1 line

cleanup some default rawiso initialization parameters for DV and MPEG2-TS
------------------------------------------------------------------------
r62 | ddennedy | 2005-07-01 08:10:02 -0700 (Fri, 01 Jul 2005) | 1 line

suppress warnings if QUIET defined
------------------------------------------------------------------------
r61 | ddennedy | 2005-06-23 10:04:57 -0700 (Thu, 23 Jun 2005) | 1 line

fixup test-amdtp.c and test-mpeg2.c select usage; switch test-dv.c to poll as example
------------------------------------------------------------------------
r60 | ddennedy | 2005-06-22 08:55:52 -0700 (Wed, 22 Jun 2005) | 1 line

fix usage of select on test-amdtp.c transmission; convert test-dv.c to use poll
------------------------------------------------------------------------
r58 | ddennedy | 2005-04-08 13:21:18 -0700 (Fri, 08 Apr 2005) | 1 line

fix the requred libraw1394 in spec file
------------------------------------------------------------------------
r57 | ddennedy | 2005-04-08 13:14:18 -0700 (Fri, 08 Apr 2005) | 1 line

simple whitespace fix
------------------------------------------------------------------------
r56 | ddennedy | 2005-04-08 13:12:43 -0700 (Fri, 08 Apr 2005) | 1 line

updated docs
------------------------------------------------------------------------
r55 | ddennedy | 2005-04-08 11:15:29 -0700 (Fri, 08 Apr 2005) | 6 lines

Patch from Pieter Palmers:
The AMDTP spec 2.1 defines two types of FDF for AM824:
binary 0000 0xxx : Basic AM824
binary 0000 1xxx : Basic AM824. Transmission rate may be controlled by 
an AV/C command stack

------------------------------------------------------------------------
r54 | ddennedy | 2005-04-06 12:34:11 -0700 (Wed, 06 Apr 2005) | 1 line

minor changes to prep for first release
------------------------------------------------------------------------
r53 | ddennedy | 2005-02-19 08:47:21 -0800 (Sat, 19 Feb 2005) | 17 lines

Patch from Hugo Villeneuve:
-Fixed error for checking the number of channels
 in amdtp.c because IEC60958 with 1 channel was
 rejected.
-Added support for IEC60958 format in amdtp_xmit_handler()
 function. This is needed for SoftAcoustik SA2.0
 speakers with firmware prior to march 31st 2000.
-Added support for sending NODATA packets in blocking
 mode, in addition to sending empty packets. This has
 resulted in the replacement of IEC61883_MODE_BLOCKING
 with two new constants:
   IEC61883_MODE_BLOCKING_EMPTY
   IEC61883_MODE_BLOCKING_NODATA
-Modified test-amdtp.c to use IEC61883_MODE_BLOCKING_EMPTY.
-Fixed inconsistency between fields of big and little
 endian structure in iec61883-private.h.

------------------------------------------------------------------------
r52 | ddennedy | 2005-02-18 15:02:35 -0800 (Fri, 18 Feb 2005) | 1 line

expand upon high level cmp functions to accept a particular plug to use or return used plug if plug -1 specified
------------------------------------------------------------------------
r51 | ddennedy | 2005-02-16 08:57:02 -0800 (Wed, 16 Feb 2005) | 1 line

move bandwidth and channel modify functions to libraw1394
------------------------------------------------------------------------
r50 | ddennedy | 2005-02-05 07:01:45 -0800 (Sat, 05 Feb 2005) | 8 lines

Changed amdtp xmit to allow more formats, sample formats, and apply
label only when AMDTP RAW -- the user callback can insert label for
other formats.
Changed amdtp user callbacks to add dbc and consolidate many other
parameters into a pointer to the amdtp object, and added accessor
functions to get fields from the amdtp object.
Cleanup some formatting in amdtp.c.

------------------------------------------------------------------------
r49 | ddennedy | 2005-02-01 04:25:12 -0800 (Tue, 01 Feb 2005) | 1 line

fix mpeg2_close and dv_close segfault - calling wrong stop
------------------------------------------------------------------------
r48 | ddennedy | 2005-01-31 13:59:57 -0800 (Mon, 31 Jan 2005) | 1 line

do not report the current dropped amount more than once to the downstream callback
------------------------------------------------------------------------
r47 | ddennedy | 2005-01-31 08:29:41 -0800 (Mon, 31 Jan 2005) | 10 lines

Fixup the RPM spec.in template wrt license and example source
Add asserts for application debugging of obvious error like null pointer.
Make dv and mpeg2 APIs consistent with amdtp wrt _init() and _stop().
Add _get_callback_data to help libraw1394 reset handler callbacks.
In CMP functions, prevent n_p2p_connections from exceeding its limit.
Added iec61883_cmp_reconnect() to help bus reset handlers.
Added iec61883_cmp_normalize_output() to help apps ensure IRM-plug 
  consistency wrt channel reservation.


------------------------------------------------------------------------
r46 | ddennedy | 2005-01-17 20:58:50 -0800 (Mon, 17 Jan 2005) | 1 line

bugfix mpeg2 receiving single tsp
------------------------------------------------------------------------
r45 | ddennedy | 2005-01-13 16:05:33 -0800 (Thu, 13 Jan 2005) | 1 line

fixes to rpm spec
------------------------------------------------------------------------
r44 | ddennedy | 2005-01-02 17:44:34 -0800 (Sun, 02 Jan 2005) | 1 line

add guid to plugreport output
------------------------------------------------------------------------
r43 | ddennedy | 2004-12-31 08:10:50 -0800 (Fri, 31 Dec 2004) | 1 line

bugfixes for plugctl.c
------------------------------------------------------------------------
r42 | ddennedy | 2004-12-19 20:58:18 -0800 (Sun, 19 Dec 2004) | 13 lines

Added better dropped packet handling by providing parameter to user
callbacks, not skipping callback invocations in the face of drops,
and maintaining a running total that can get access using new functions.

Added examples/plugctl.c, which provides low-level plug field get and 
set functionality -- useful for working around problematic devices that
do not configure their plug's initial state to something compatible with
connection management procedures.

Bugfixes in cmp.c and plugreport.c.
Improvements to RPM spec provided by Ian Forde.


------------------------------------------------------------------------
r41 | ddennedy | 2004-12-18 10:54:43 -0800 (Sat, 18 Dec 2004) | 1 line

bugfix in plugreport and add description to pkgconfig
------------------------------------------------------------------------
r40 | ddennedy | 2004-12-10 19:46:53 -0800 (Fri, 10 Dec 2004) | 1 line

reduce size of stack-managed buffer in amdtp handlers
------------------------------------------------------------------------
r39 | ddennedy | 2004-12-09 20:24:42 -0800 (Thu, 09 Dec 2004) | 1 line

in amdtp receive, add metadata params to callback and only reformat data if 16bit pcm
------------------------------------------------------------------------
r38 | ddennedy | 2004-12-07 19:13:42 -0800 (Tue, 07 Dec 2004) | 1 line

fix amdtp receive to align PCM samples - limited to 16bit for now - just like transmission
------------------------------------------------------------------------
r37 | ddennedy | 2004-12-07 18:22:21 -0800 (Tue, 07 Dec 2004) | 1 line

improved example/test-amdtp
------------------------------------------------------------------------
r36 | ddennedy | 2004-12-05 19:06:59 -0800 (Sun, 05 Dec 2004) | 1 line

major overhaul of cmp; revised examples for testing cmp; silence some compilation warnings; added examples/plugreport.c
------------------------------------------------------------------------
r35 | ddennedy | 2004-12-03 21:36:09 -0800 (Fri, 03 Dec 2004) | 1 line

convert amdtp receive to rawiso; add configurable io options to amdtp; add speed to io options for all
------------------------------------------------------------------------
r34 | ddennedy | 2004-11-26 12:43:48 -0800 (Fri, 26 Nov 2004) | 4 lines

add symbol qualifier to deque
let cmp functions skip bandwidth allocation if zero


------------------------------------------------------------------------
r33 | ddennedy | 2004-11-26 12:24:39 -0800 (Fri, 26 Nov 2004) | 6 lines

add documentation to header
add accessors to buffering parameters
make rawiso functions use buffering parameters
add synch handling to dv and mpeg close functions


------------------------------------------------------------------------
r32 | ddennedy | 2004-11-19 20:59:04 -0800 (Fri, 19 Nov 2004) | 1 line

bump required version of libraw1394 and comment out unimplemented functions
------------------------------------------------------------------------
r31 | ddennedy | 2004-10-25 20:59:29 -0700 (Mon, 25 Oct 2004) | 1 line

add nodeid mask to mpeg sid; add dv transmission cip workaround
------------------------------------------------------------------------
r30 | ddennedy | 2004-10-25 18:29:56 -0700 (Mon, 25 Oct 2004) | 1 line

fix sid in cip header to not include bus portion
------------------------------------------------------------------------
r29 | ddennedy | 2004-08-28 21:16:35 -0700 (Sat, 28 Aug 2004) | 1 line

set FDF properly for PAL DV transmission
------------------------------------------------------------------------
r28 | ddennedy | 2004-08-27 18:57:56 -0700 (Fri, 27 Aug 2004) | 1 line

consolidate opcr functions
------------------------------------------------------------------------
r27 | ddennedy | 2004-08-27 18:44:22 -0700 (Fri, 27 Aug 2004) | 1 line

add public functions to host local plugs, added example test-plugs, require payload and overhead_id when establishing connection
------------------------------------------------------------------------
r26 | ddennedy | 2004-07-14 20:19:35 -0700 (Wed, 14 Jul 2004) | 1 line

make CIP and protocol structs private, make init functions allocate their structs, and add close functions
------------------------------------------------------------------------
r25 | ddennedy | 2004-07-11 17:34:34 -0700 (Sun, 11 Jul 2004) | 32 lines

Patch from Hugo Villeneuve:

-Added <iec61883-private.h> to hide internal stuff from the API include 
   file <iec61883.h>
-Moved debug macros from <cmp.c> and <plug.c> to <iec61883-private.h> 
   so that each source file in libiec61883 can use them.
-Added directive "CLEANFILES = *~" to Makefile.am and src/Makefile.am to clean
   temporary files.
-Replaced printf with debug macros in amdtp.c
-Added macro to enable workaround for datavideo DAC-2 - DRD (plug not online). 
   This is disabled by default.
-Re-activated alloc_bandwidth() and free_bandwidth() functions, and merged 
   them into a single function because the two are almost identical. Fixed
   incorrect way of checking lock function return value.
-Merged alloc_channel() and free_channel() functions into a single function 
   because the two are almost identical. Fixed incorrect way of checking 
   lock function return value.
-Added requested bandwidth argument to iec61883_cmp_make_p2p() function. 
   Bandwidth is now correctly allocated by iec61883_cmp_make_p2p().
-Simplified allocation of channels in iec61883_cmp_make_p2p() function 
   (removal of duplicate code).
-Added temporary workaround in iec61883_cmp_make_p2p() and 
   iec61883_cmp_break_p2p() functions because there seems to be no input 
   plugs present with the current version of libiec61883, and so we don't 
   try to access them when the <to> argument node id is equal to that of 
   the local Linux machine.
-Fixed bug which prevented the isochronous channel from being sent to the <to>
   input plug.
-Added recovery (deallocation of previously allocated resources) in case of 
   errors encountered in iec61883_cmp_make_p2p().


------------------------------------------------------------------------
r24 | ddennedy | 2004-06-29 20:44:47 -0700 (Tue, 29 Jun 2004) | 1 line

fix broken compilation of test-amdtp.c and remove put_data parameter from iec61883_amdtp_xmit_init() since previous patch splits init functions
------------------------------------------------------------------------
r23 | ddennedy | 2004-06-29 20:16:16 -0700 (Tue, 29 Jun 2004) | 1 line

add Hugo to AUTHORS
------------------------------------------------------------------------
r22 | ddennedy | 2004-06-29 20:15:14 -0700 (Tue, 29 Jun 2004) | 14 lines

Patch from Hugo Villeneuve <hugo@hugovil.com>
 -Added functions for amdtp reception.
 -Added iso_packet_header structure for checking the <tag> field
  in amdtp reception (maybe this could be checked in libraw1394 instead).
 -Added constants to iec61883.h for bit length and input format
  of AM824 data.
 -Redefined callback function for amdtp reception to pass a
  quadlet_t buffer instead of a char buffer.
 -Added <rate> member to iec61883_amdtp structure.
 -Separated the transmit and receive amdtp init functions:
     iec61883_amdtp_xmit_init
     iec61883_amdtp_recv_init


------------------------------------------------------------------------
r21 | ddennedy | 2004-06-19 17:10:21 -0700 (Sat, 19 Jun 2004) | 1 line

make deque LGPL with approval of copyright approval
------------------------------------------------------------------------
r20 | ddennedy | 2004-06-13 18:05:23 -0700 (Sun, 13 Jun 2004) | 1 line

restore copyright on deque and GPL license pending LGPL approval from copyright holder
------------------------------------------------------------------------
r19 | ddennedy | 2004-06-13 17:43:58 -0700 (Sun, 13 Jun 2004) | 1 line

fix a missing include in tsbuffer.c, add size of a mpeg2 transport stream packet to distributed header
------------------------------------------------------------------------
r18 | ddennedy | 2004-06-13 17:29:41 -0700 (Sun, 13 Jun 2004) | 1 line

default test-mpeg2 to capture and implement PID auto discovering
------------------------------------------------------------------------
r17 | ddennedy | 2004-06-13 17:15:32 -0700 (Sun, 13 Jun 2004) | 1 line

added mpeg2-ts reception and transmission, added to/from nodes to connection management procedures, add test for mpeg2-ts and cmp
------------------------------------------------------------------------
r16 | krh | 2004-06-02 05:34:20 -0700 (Wed, 02 Jun 2004) | 10 lines

Patch from Hugo Villeneuve <hugo@hugovil.com>:

- The TAG field in the isochronous header was hardcoded to 0, which means
  that no CIP headers are present. Changed this to '1'.
- Added raw1394handle_t parameter to iec61883_cip_fill_header() function
  in order to correctly set the SID bit (raw1394handle_t is needed to
  call raw1394_get_local_id).
- Changed the AM824 label 0x40 for IEC61883_AM824_LABEL_RAW_16BITS (0x43)


------------------------------------------------------------------------
r15 | krh | 2004-04-29 04:23:33 -0700 (Thu, 29 Apr 2004) | 3 lines

Fix typo: rename iec61883_amdtp_start_xmit to iec61883_amdtp_xmit_start.
Reported by Hugo Villeneuve <hugo@hugovil.com>

------------------------------------------------------------------------
r14 | krh | 2004-03-14 09:43:21 -0800 (Sun, 14 Mar 2004) | 3 lines

Add RPM spec-file, add cooked.h to SOURCES.


------------------------------------------------------------------------
r13 | krh | 2004-03-13 08:42:19 -0800 (Sat, 13 Mar 2004) | 2 lines

Use callback_data for file pointer.

------------------------------------------------------------------------
r12 | ddennedy | 2004-03-13 07:21:09 -0800 (Sat, 13 Mar 2004) | 1 line

some small fixes for dv_transmit
------------------------------------------------------------------------
r11 | ddennedy | 2004-03-12 22:17:04 -0800 (Fri, 12 Mar 2004) | 1 line

debugged DV transmission and added to example
------------------------------------------------------------------------
r10 | ddennedy | 2004-03-12 20:09:13 -0800 (Fri, 12 Mar 2004) | 1 line

being anal
------------------------------------------------------------------------
r9 | ddennedy | 2004-03-12 20:06:49 -0800 (Fri, 12 Mar 2004) | 1 line

cleanup some comment headers
------------------------------------------------------------------------
r8 | ddennedy | 2004-03-12 20:01:20 -0800 (Fri, 12 Mar 2004) | 1 line

improvements to the dv frame buffer implementation
------------------------------------------------------------------------
r7 | ddennedy | 2004-03-12 19:36:20 -0800 (Fri, 12 Mar 2004) | 1 line

added frame buffer interface for DV capture
------------------------------------------------------------------------
r6 | ddennedy | 2004-03-12 17:43:49 -0800 (Fri, 12 Mar 2004) | 1 line

add dv reception and untested code for dv transmission
------------------------------------------------------------------------
r5 | ddennedy | 2004-03-09 16:14:01 -0800 (Tue, 09 Mar 2004) | 1 line

qualify plug structs
------------------------------------------------------------------------
r4 | ddennedy | 2004-03-09 06:11:32 -0800 (Tue, 09 Mar 2004) | 1 line

initial import
------------------------------------------------------------------------
r1 | root | 2002-11-24 14:06:02 -0800 (Sun, 24 Nov 2002) | 1 line

New dir
------------------------------------------------------------------------
