- Timestamp:
- 12/06/08 04:24:19 (15 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/libffado-2.0/src/libieee1394/IsoHandlerManager.cpp
r1462 r1495 792 792 int min_interrupts_per_period = MINIMUM_INTERRUPTS_PER_PERIOD; 793 793 int max_nb_buffers_recv = MAX_RECV_NB_BUFFERS; 794 int min_packetsize_recv = MIN_RECV_PACKET_SIZE; 794 795 if(config) { 795 796 config->getValueForSetting("ieee1394.isomanager.iso_receive_mode", receive_mode_setting); … … 797 798 config->getValueForSetting("ieee1394.isomanager.min_interrupts_per_period", min_interrupts_per_period); 798 799 config->getValueForSetting("ieee1394.isomanager.max_nb_buffers_recv", max_nb_buffers_recv); 800 config->getValueForSetting("ieee1394.isomanager.min_packetsize_recv", min_packetsize_recv); 799 801 } 800 802 801 803 // setup the optimal parameters for the raw1394 ISO buffering 802 804 unsigned int packets_per_period = stream->getPacketsPerPeriod(); 803 unsigned int max_packet_size = stream->getMaxPacketSize() + 8; // bufferfill takes another 8 bytes for headers 805 // reserve space for the 1394 header too (might not be necessary) 806 unsigned int max_packet_size = stream->getMaxPacketSize() + 8; 804 807 unsigned int page_size = getpagesize(); 805 808 … … 835 838 return false; 836 839 } 840 if (max_packet_size < (unsigned)min_packetsize_recv) { 841 debugError("min packet size (%u) < MIN_RECV_PACKET_SIZE (%u), using min value\n", 842 max_packet_size, min_packetsize_recv); 843 max_packet_size = min_packetsize_recv; 844 } 837 845 838 846 // the interrupt/wakeup interval prediction of raw1394 is a mess... … … 868 876 int max_nb_buffers_xmit = MAX_XMIT_NB_BUFFERS; 869 877 int max_packetsize_xmit = MAX_XMIT_PACKET_SIZE; 878 int min_packetsize_xmit = MIN_XMIT_PACKET_SIZE; 870 879 if(config) { 871 880 config->getValueForSetting("ieee1394.isomanager.min_interrupts_per_period", min_interrupts_per_period); 872 881 config->getValueForSetting("ieee1394.isomanager.max_nb_buffers_xmit", max_nb_buffers_xmit); 873 882 config->getValueForSetting("ieee1394.isomanager.max_packetsize_xmit", max_packetsize_xmit); 883 config->getValueForSetting("ieee1394.isomanager.min_packetsize_xmit", min_packetsize_xmit); 874 884 } 875 885 876 886 // setup the optimal parameters for the raw1394 ISO buffering 877 unsigned int max_packet_size = stream->getMaxPacketSize(); 887 // reserve space for the 1394 header too (might not be necessary) 888 unsigned int max_packet_size = stream->getMaxPacketSize() + 8; 878 889 879 890 if (max_packet_size > (unsigned)max_packetsize_xmit) { … … 881 892 max_packet_size, max_packetsize_xmit); 882 893 return false; 894 } 895 if (max_packet_size < (unsigned)min_packetsize_xmit) { 896 debugError("min packet size (%u) < MIN_XMIT_PACKET_SIZE (%u), using min value\n", 897 max_packet_size, min_packetsize_xmit); 898 max_packet_size = min_packetsize_xmit; 883 899 } 884 900