mbox series

[0/8] ALSA: firewire-lib: check cycle continuity

Message ID 20210518130048.146596-1-o-takashi@sakamocchi.jp (mailing list archive)
Headers show
Series ALSA: firewire-lib: check cycle continuity | expand

Message

Takashi Sakamoto May 18, 2021, 1 p.m. UTC
Hi,

Current implementation of ALSA IEC 61883-1/6 packet streaming engine
doesn't check whether received packets are exactly per isochronous
cycle. This is required to process packets transferred from
OXFW970-based devices and devices in RME Fireface series. However, the
packet sequence with skipped cycle is inconvenient for media clock
recovery.

This patchset takes the engine to check cycle continuity at processing
packets, including code refactoring. For RME Fireface series, the skipped
cycle is handled as receiving an empty packet. For OXFW970-based devices,
the skipped cycles are acceptable but media clock recovery is hard.

Takashi Sakamoto (8):
  ALSA: firewire-lib: code refactoring to refer the same frame count per
    period in domain structure
  ALSA: firewire-lib: handle the case that empty isochronous packet
    payload for CIP
  ALSA: firewire-lib: code refactoring for sequence descriptor'
  ALSA: firewire-lib: code refactoring for helper function to compute
    OHCI 1394 cycle
  ALSA: firewire-lib: code refactoring for parser of IR context header
  ALSA: firewire-lib: code refactoring for check of CIP header about
    payload size
  ALSA: firewire-lib: check cycle continuity
  ALSA: firewire-lib: insert descriptor for skipped cycle

 sound/firewire/amdtp-stream.c | 172 ++++++++++++++++++++++------------
 sound/firewire/amdtp-stream.h |  10 +-
 2 files changed, 119 insertions(+), 63 deletions(-)

Comments

Takashi Iwai May 19, 2021, 2:25 p.m. UTC | #1
On Tue, 18 May 2021 15:00:39 +0200,
Takashi Sakamoto wrote:
> 
> Hi,
> 
> Current implementation of ALSA IEC 61883-1/6 packet streaming engine
> doesn't check whether received packets are exactly per isochronous
> cycle. This is required to process packets transferred from
> OXFW970-based devices and devices in RME Fireface series. However, the
> packet sequence with skipped cycle is inconvenient for media clock
> recovery.
> 
> This patchset takes the engine to check cycle continuity at processing
> packets, including code refactoring. For RME Fireface series, the skipped
> cycle is handled as receiving an empty packet. For OXFW970-based devices,
> the skipped cycles are acceptable but media clock recovery is hard.
> 
> Takashi Sakamoto (8):
>   ALSA: firewire-lib: code refactoring to refer the same frame count per
>     period in domain structure
>   ALSA: firewire-lib: handle the case that empty isochronous packet
>     payload for CIP
>   ALSA: firewire-lib: code refactoring for sequence descriptor'
>   ALSA: firewire-lib: code refactoring for helper function to compute
>     OHCI 1394 cycle
>   ALSA: firewire-lib: code refactoring for parser of IR context header
>   ALSA: firewire-lib: code refactoring for check of CIP header about
>     payload size
>   ALSA: firewire-lib: check cycle continuity
>   ALSA: firewire-lib: insert descriptor for skipped cycle

Applied all eight patches now.  Thanks.


Takashi