Changeset 1848

Show
Ignore:
Timestamp:
06/11/10 06:22:02 (3 months ago)
Author:
jwoithe
Message:

RME: nothing exciting - just some additional code to facilitate development of the streaming system.
RME: minor documentation updates.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/doc/rme_notes/rme_config_register_map.txt

    r1690 r1848  
    22============================================ 
    33 
    4 Version: 0.18 
     4Version: 0.19 
    55Author: Jonathan Woithe 
    6 Date: 17 October 2009 
     6Date: 11 June 2010 
    77 
    88 
     
    620620immediately after the standard 2-quadlet firewire iso packet header. 
    621621 
    622 Each iso packet contains a number of samples across all 28 device channels. 
    623 For 1x rates, 7 samples per channel seem to be sent.  Thus the size of  
    624 the data portion of a 1x iso packet is 28*4*7 = 784, with a total packet 
    625 size being 784 + 8 = 792. 
     622Each iso packet contains a number of samples across all 28 device channels 
     623(18 channels in the case of the ff400).  For 1x rates, 7 samples per channel 
     624seem to be sent.  Thus the size of the data portion of a 1x iso packet is 
     62528*4*7 = 784, with a total packet size being 784 + 8 = 792. 
    626626 
    627627The data is sent with one audio channel per quadlet.  The audio data is a 24 
     
    655655through.  In other words, the "current frame" is not necessarily constant 
    656656for all samples in a packet. 
     657 
     658With the number of samples per channel contained in each iso packet it is 
     659not necessary for the RME to send audio data in every iso cycle.  When it is 
     660deemed that a cycle can be skipped the RME simply doesn't send any packet at 
     661all in that cycle.  This contrasts with other devices which tend to send 
     662empty "placeholder" packets when the need arises.  This means that a cycle 
     663without a packet from the RME is not necessarily an error condition.  To 
     664detect dropped packets one must instead rely on the rx sample counter 
     665embedded in the audio data stream. 
    657666 
    658667 
  • trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp

    r1847 r1848  
    110110{ 
    111111// For testing 
     112quadlet_t *adata = (quadlet_t *)data; 
    112113debugOutput(DEBUG_LEVEL_VERBOSE, "data packet header, len=%d\n", length); 
    113114 
     
    137138debugOutput(DEBUG_LEVEL_VERBOSE, "  timestamp: %lld, ct=%08x (%03ld,%04ld,%04ld)\n", m_last_timestamp, ct, 
    138139  CYCLE_TIMER_GET_SECS(ct), CYCLE_TIMER_GET_CYCLES(ct), CYCLE_TIMER_GET_OFFSET(ct)); 
     140debugOutput(DEBUG_LEVEL_VERBOSE, "  %02x %02x %02x %02x %02x %02x %02x %02x\n", 
     141  adata[0] & 0xff, adata[1] & 0xff, adata[2] & 0xff, adata[3] & 0xff, 
     142  adata[4] & 0xff, adata[5] & 0xff, adata[6] & 0xff, adata[7] & 0xff); 
     143debugOutput(DEBUG_LEVEL_VERBOSE, "  tx size=%d, rxcount=%d\n", 
     144  ((adata[5] & 0xff) << 8) | (adata[0] & 0xff), 
     145  ((adata[4] & 0xff) << 8) | (adata[1] & 0xff)); 
    139146        return eCRV_OK; 
    140147    } else {