Package: libffado2 Version: 2.0.1+svn1856-5 Severity: serious
The attached test program can trigger a (timing?) bug in libffado2, which causes an assertion failure (i.e. crash of the whole application).
#include <libffado/ffado.h> #include <stdbool.h> #include <string.h> #include <assert.h> #include <stdio.h> enum { MAX_STREAMS = 16, PERIOD_SIZE = 1024, NB_BUFFERS = 3, }; static float buffer[PERIOD_SIZE]; static bool configure_stream(ffado_device_t *dev, int number) { return ffado_streaming_set_playback_stream_buffer(dev, number, (char *)buffer) == 0 && ffado_streaming_playback_stream_onoff(dev, number, 1) == 0; } int main(int argc, char **argv) { ffado_device_t *dev; ffado_device_info_t device_info; memset(&device_info, 0, sizeof(device_info)); ffado_options_t options; memset(&options, 0, sizeof(options)); options.sample_rate = 44100; options.period_size = PERIOD_SIZE; options.nb_buffers = NB_BUFFERS; options.verbose = 4; dev = ffado_streaming_init(device_info, options); assert(dev != NULL); ffado_streaming_set_audio_datatype(dev, ffado_audio_datatype_float); int num_streams = ffado_streaming_get_nb_playback_streams(dev); assert(num_streams > 0); int streams[MAX_STREAMS], configured_streams = 0; for (int i = 0; i < num_streams; ++i) { if (configured_streams >= 2) break; char name[256]; ffado_streaming_get_playback_stream_name(dev, i, name, sizeof(name) - 1); ffado_streaming_stream_type type = ffado_streaming_get_playback_stream_type(dev, i); if (type != ffado_stream_type_audio) continue; printf("stream %d name='%s'\n", i, name); streams[configured_streams++] = i; configure_stream(dev, i); } if (ffado_streaming_prepare(dev) != 0) { fprintf(stderr, "ffado_streaming_prepare() failed\n"); return 1; } if (ffado_streaming_start(dev) != 0) { fprintf(stderr, "ffado_streaming_start() failed\n"); return 1; } getchar(); return 0; }
Cannot create thread 1 Operation not permitted ERROR: messagebuffer not initialized: 1250338856552: (ffado.cpp)[ 92] ffado_streaming_init: libffado 2.999.0- built Oct 16 2010 22:29:48 ERROR: messagebuffer not initialized: 1250338856611: [31mWarning (ffado.cpp)[ 121] ffado_streaming_init: Realtime scheduling is not enabled. This will cause significant reliability issues. [0mERROR: messagebuffer not initialized: 1250339089620: Debug (devicemanager.cpp)[ 358] discover: Starting discovery... ERROR: messagebuffer not initialized: 1250339197751: Debug (Configuration.cpp)[ 163] showSetting: Group: (null) ERROR: messagebuffer not initialized: 1250339197771: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 3436 (0x00000D6C) ERROR: messagebuffer not initialized: 1250339197777: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65634 (0x00010062) ERROR: messagebuffer not initialized: 1250339197783: Debug (Configuration.cpp)[ 209] showSetting: vendorname = M-Audio ERROR: messagebuffer not initialized: 1250339197787: Debug (Configuration.cpp)[ 209] showSetting: modelname = FW Solo ERROR: messagebuffer not initialized: 1250339197791: Debug (Configuration.cpp)[ 185] showSetting: driver = 1 (0x00000001) ERROR: messagebuffer not initialized: 1250339197796: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004) ERROR: messagebuffer not initialized: 1250339197885: Debug (devicemanager.cpp)[ 620] discover: driver found for device 0 ERROR: messagebuffer not initialized: 1250339218779: Debug (bebob_avdevice.cpp)[ 734] loadFromCache: filename /home/max/.ffado/cache/000d6c0b0076ee12/0000006001040403.xml ERROR: messagebuffer not initialized: 1250339224945: Debug (serialize_libxml.cpp)[ 230] checkVersion: Cache version: 2.999.0-, expected: 2.999.0-. ERROR: messagebuffer not initialized: 1250339374980: Debug (avc_unit.cpp)[ 489] discoverPlugConnections: Discovering PCR plug connections... ERROR: messagebuffer not initialized: 1250339412532: Debug (avc_unit.cpp)[ 500] discoverPlugConnections: Discovering External plug connections... ERROR: messagebuffer not initialized: 1250339451864: Debug (bebob_avdevice_subunit.cpp)[ 102] discoverConnections: Discovering connections... ERROR: messagebuffer not initialized: 1250339451876: Debug (avc_subunit.cpp)[ 148] discoverConnections: Discovering connections... ERROR: messagebuffer not initialized: 1250339451882: Debug (avc_subunit.cpp)[ 148] discoverConnections: Discovering connections... ERROR: messagebuffer not initialized: 1250339451885: Debug (bebob_avdevice_subunit.cpp)[ 102] discoverConnections: Discovering connections... ERROR: messagebuffer not initialized: 1250339451888: Debug (avc_subunit.cpp)[ 148] discoverConnections: Discovering connections... ERROR: messagebuffer not initialized: 1250339451891: Debug (avc_subunit.cpp)[ 148] discoverConnections: Discovering connections... ERROR: messagebuffer not initialized: 1250339451904: Debug (bebob_avdevice.cpp)[ 758] loadFromCache: could create valid bebob driver from /home/max/.ffado/cache/000d6c0b0076ee12/0000006001040403.xml ERROR: messagebuffer not initialized: 1250339453437: Debug (devicemanager.cpp)[ 657] discover: discovery of node 0 on port 0 done... ERROR: messagebuffer not initialized: 1250339453448: Debug (devicemanager.cpp)[ 665] discover: Discovery finished... ERROR: messagebuffer not initialized: 1250339453453: Debug (devicemanager.cpp)[1252] showDeviceInfo: ===== Device Manager ===== ERROR: messagebuffer not initialized: 1250339453458: Debug (Element.cpp)[ 121] show: Element DeviceManager ERROR: messagebuffer not initialized: 1250339453461: Debug (devicemanager.cpp)[1260] showDeviceInfo: --- IEEE1394 Service 0 --- ERROR: messagebuffer not initialized: Iso handler info: ERROR: messagebuffer not initialized: Dumping IsoHandlerManager Stream handler information... ERROR: messagebuffer not initialized: State: 2 ERROR: messagebuffer not initialized: 1250339453478: Debug (devicemanager.cpp)[1270] showDeviceInfo: --- Device 0 --- ERROR: messagebuffer not initialized: 1250339453482: Debug (bebob_avdevice.cpp)[ 480] showDevice: Device is a BeBoB device ERROR: messagebuffer not initialized: 1250339453488: Debug (ffadodevice.cpp)[ 214] showDevice: Attached to port.......: 0 (/dev/fw1) ERROR: messagebuffer not initialized: 1250339453492: Debug (ffadodevice.cpp)[ 215] showDevice: Node...................: 0 ERROR: messagebuffer not initialized: 1250339453496: Debug (ffadodevice.cpp)[ 217] showDevice: Vendor name............: M-Audio ERROR: messagebuffer not initialized: 1250339453500: Debug (ffadodevice.cpp)[ 219] showDevice: Model name.............: FW Solo ERROR: messagebuffer not initialized: 1250339453504: Debug (ffadodevice.cpp)[ 221] showDevice: GUID...................: 000d6c0b0076ee12 ERROR: messagebuffer not initialized: 1250339453509: Debug (ffadodevice.cpp)[ 226] showDevice: Assigned ID....: 000d6c0b0076ee12 ERROR: messagebuffer not initialized: 1250339453516: Debug (devicemanager.cpp)[1273] showDeviceInfo: Clock sync sources: ERROR: messagebuffer not initialized: 1250339453526: Debug (avc_unit.cpp)[ 815] getActiveSyncInfo: Active Sync Connection: Internal (CSP), 'MSU Synch Output' -> 'MSU Synch Input' ERROR: messagebuffer not initialized: 1250339453532: Debug (avc_unit.cpp)[ 815] getActiveSyncInfo: Active Sync Connection: Internal (CSP), 'MSU Synch Output' -> 'MSU Synch Input' ERROR: messagebuffer not initialized: 1250339453542: Debug (avc_unit.cpp)[ 815] getActiveSyncInfo: Active Sync Connection: Internal (CSP), 'MSU Synch Output' -> 'MSU Synch Input' ERROR: messagebuffer not initialized: 1250339453548: Debug (devicemanager.cpp)[1282] showDeviceInfo: Type: Compound Syt Match, Id: 34, Valid: 1, Active: 0, Locked 1, Slipping: 0, Description: Syt Match ERROR: messagebuffer not initialized: 1250339453552: Debug (devicemanager.cpp)[1282] showDeviceInfo: Type: Internal , Id: 31, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: Internal (CSP) ERROR: messagebuffer not initialized: 1250339453557: Debug (devicemanager.cpp)[1282] showDeviceInfo: Type: WordClock , Id: 39, Valid: 1, Active: 0, Locked 1, Slipping: 0, Description: Ext Spdif Input ERROR: messagebuffer not initialized: 1250339487137: Debug (Configuration.cpp)[ 163] showSetting: Group: (null) ERROR: messagebuffer not initialized: 1250339487148: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 3436 (0x00000D6C) ERROR: messagebuffer not initialized: 1250339487153: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65634 (0x00010062) ERROR: messagebuffer not initialized: 1250339487158: Debug (Configuration.cpp)[ 209] showSetting: vendorname = M-Audio ERROR: messagebuffer not initialized: 1250339487162: Debug (Configuration.cpp)[ 209] showSetting: modelname = FW Solo ERROR: messagebuffer not initialized: 1250339487167: Debug (Configuration.cpp)[ 185] showSetting: driver = 1 (0x00000001) ERROR: messagebuffer not initialized: 1250339487171: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004) ERROR: messagebuffer not initialized: 1250339487203: Debug (Configuration.cpp)[ 163] showSetting: Group: (null) ERROR: messagebuffer not initialized: 1250339487210: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 3436 (0x00000D6C) ERROR: messagebuffer not initialized: 1250339487214: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65634 (0x00010062) ERROR: messagebuffer not initialized: 1250339487219: Debug (Configuration.cpp)[ 209] showSetting: vendorname = M-Audio ERROR: messagebuffer not initialized: 1250339487222: Debug (Configuration.cpp)[ 209] showSetting: modelname = FW Solo ERROR: messagebuffer not initialized: 1250339487226: Debug (Configuration.cpp)[ 185] showSetting: driver = 1 (0x00000001) ERROR: messagebuffer not initialized: 1250339487230: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004) ERROR: messagebuffer not initialized: 1250339487260: Debug (Configuration.cpp)[ 163] showSetting: Group: (null) ERROR: messagebuffer not initialized: 1250339487266: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 3436 (0x00000D6C) ERROR: messagebuffer not initialized: 1250339487270: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65634 (0x00010062) ERROR: messagebuffer not initialized: 1250339487275: Debug (Configuration.cpp)[ 209] showSetting: vendorname = M-Audio ERROR: messagebuffer not initialized: 1250339487279: Debug (Configuration.cpp)[ 209] showSetting: modelname = FW Solo ERROR: messagebuffer not initialized: 1250339487283: Debug (Configuration.cpp)[ 185] showSetting: driver = 1 (0x00000001) ERROR: messagebuffer not initialized: 1250339487286: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004) ERROR: messagebuffer not initialized: 1250339487310: Debug (Configuration.cpp)[ 163] showSetting: Group: (null) ERROR: messagebuffer not initialized: 1250339487315: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 3436 (0x00000D6C) ERROR: messagebuffer not initialized: 1250339487320: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65634 (0x00010062) ERROR: messagebuffer not initialized: 1250339487324: Debug (Configuration.cpp)[ 209] showSetting: vendorname = M-Audio ERROR: messagebuffer not initialized: 1250339487328: Debug (Configuration.cpp)[ 209] showSetting: modelname = FW Solo ERROR: messagebuffer not initialized: 1250339487331: Debug (Configuration.cpp)[ 185] showSetting: driver = 1 (0x00000001) ERROR: messagebuffer not initialized: 1250339487335: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004) ERROR: messagebuffer not initialized: 1250339487364: Debug (Configuration.cpp)[ 163] showSetting: Group: (null) ERROR: messagebuffer not initialized: 1250339487370: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 3436 (0x00000D6C) ERROR: messagebuffer not initialized: 1250339487374: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65634 (0x00010062) ERROR: messagebuffer not initialized: 1250339487379: Debug (Configuration.cpp)[ 209] showSetting: vendorname = M-Audio ERROR: messagebuffer not initialized: 1250339487383: Debug (Configuration.cpp)[ 209] showSetting: modelname = FW Solo ERROR: messagebuffer not initialized: 1250339487386: Debug (Configuration.cpp)[ 185] showSetting: driver = 1 (0x00000001) ERROR: messagebuffer not initialized: 1250339487390: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004) ERROR: messagebuffer not initialized: Handler type................: Receive ERROR: messagebuffer not initialized: Port, Channel...............: 0, 0 ERROR: messagebuffer not initialized: Buffer, MaxPacketSize, IRQ..: 128, 200, 64 ERROR: messagebuffer not initialized: Last cycle, dropped.........: -1, 0, 0 ERROR: messagebuffer not initialized: Handler type................: Transmit ERROR: messagebuffer not initialized: Port, Channel...............: 0, 1 ERROR: messagebuffer not initialized: Buffer, MaxPacketSize, IRQ..: 128, 144, 64 ERROR: messagebuffer not initialized: Speed ..................: 2 ERROR: messagebuffer not initialized: Min ISOXMT bufferfill : 7999 ERROR: messagebuffer not initialized: Last cycle, dropped.........: -1, 0, 0 ERROR: messagebuffer not initialized: 1250340177875: [31mWarning (StreamProcessor.cpp)[ 707] getPacket: Instantanous samplerate more than 1% off nominal. [Nom fs: 44100.000000, Instantanous fs: 22051.144011, diff: 22048.855989 ( 0.499974)] [0mERROR: messagebuffer not initialized: 1250340746132: [31mWarning (TimestampedBuffer.cpp)[ 507] writeFrames: ringbuffer full, 128, 127 [0mERROR: messagebuffer not initialized: 1250340746144: Debug (StreamProcessor.cpp)[ 497] putPacket: processPacketData xrun ERROR: messagebuffer not initialized: 1250340754077: [31mWarning (StreamProcessor.cpp)[ 389] putPacket: Instantanous samplerate more than 1% off nominal. [Nom fs: 44100.000000, Instantanous fs: 1913.217792, diff: 42186.782208 ( 0.956616)] [0mERROR: messagebuffer not initialized: 1250340754102: [31mWarning (TimestampedBuffer.cpp)[1053] incrementFrameCounter: (0x7fc19002dba0) difference rather large (+): diff= 102800.632, max= 1536.000, 1404404981.000, 1404302180.368 [0mtest: src/libutil/TimestampedBuffer.cpp:1029: void Util::TimestampedBuffer::incrementFrameCounter(unsigned int, ffado_timestamp_t): Assertion `nbframes == m_update_period' failed. stream 0 name='000d6c0b0076ee12_SpdifOut L' stream 1 name='000d6c0b0076ee12_SpdifOut R'
_______________________________________________ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers